使用循环搜索值

时间:2013-12-04 22:22:19

标签: c# loops search while-loop

我正在尝试创建一个代码,用于搜索用户输入的自定义值。 我对C#的了解不是很大,所以对我来说最简单的方法就是在可能的情况下用循环搜索。

到目前为止的代码:

 private void button4_Click(object sender, EventArgs e)
 {
     uint offset = 0x0154d6e4;
     uint value= 844705;
     uint randBuff = Loaded_DLL.Extension.ReadUInt32(offset);

     while (randBuff == value)
     {
         offset = (offset + 4);
         listBox1.Items.Add(randBuff.ToString("x8")); 
     }        
 }

在我的大脑中,我认为起始偏移量是unit offset从这一点开始搜索值uint value,从它使用我的DLL读取它的内存中获取值输入了偏移量Extension.ReadUInt32(offset);。 也许有一次程序会在listbox1中找到值并输出它。如果没有找到,偏移量将增加4.不知何故,它不工作或不搜索,我不确定什么是正确的答案。

2 个答案:

答案 0 :(得分:0)

private void button4_Click(object sender, EventArgs e)
 {
     uint offset = 0x0154d6e4;
     uint value= 844705;
     uint randBuff = Loaded_DLL.Extension.ReadUInt32(offset);

     while (randBuff != value)
     {
         offset = (offset + 4);
         randBuff = Loaded_DLL.Extension.ReadUInt32(offset);

     }
     if(randBuff == value)
         listBox1.Items.Add(randBuff.ToString("x8"));
     else
        listBox1.Items.Add("Value not found!");
 }

您需要读取randBuff中的新偏移量。

答案 1 :(得分:0)

代码不会继续更新它的randbuff所以会卡住......所以代码应该是这样的: -

private void button4_Click(object sender, EventArgs e)
 {
     uint offset = 0x0154d6e4;
     uint value= 844705;
     uint randBuff = Loaded_DLL.Extension.ReadUInt32(offset);

     while (randBuff == value)
     {
         offset = (offset + 4);
         listBox1.Items.Add(randBuff.ToString("x8")); 
         randBuff = Loaded_DLL.Extension.ReadUInt32(offset)
     }        
 }

然而,根据你的描述,我不确定while循环是否正确,目前只要读取的值是844705就会继续查看....所以列表框中的所有值都是相同的。我很兴奋,也许你想继续搜索,直到找到价值......然后你就会用....

while (randBuff != value)
但是我不太确定你的意图。