2015-05-04 5 views
-3

В настоящее время я пытаюсь создать сценарий (.dll) в C#. Я планирую прочитать значение определенного адреса, и если значение не равно a-z, A-Z, 1-9, то я сделаю что-то. Я пытался выяснить что-то, используя Regex. Вот мой текущий результат, который, очевидно, ошибочен.C# с правильным правилом

 public Main() 
    { 
     PlayerConnected += new Action<Entity>(player => 
     { 
      try 
      { 
       Regex r = new Regex("^[a-zA-Z0-9]*$"); 
       Process process = Process.GetProcessesByName("iw5mp").FirstOrDefault(); 
       Byte[] val = Encoding.ASCII.GetBytes(/*What should i do here?*/); 
       var hProc = OpenProcess(0x1F0FFF, false, process.Id); 
       int address = 0x1328d54; 
       int BytesWritten = 0; 

       ReadProcessMemory((int)hProc, address, val, val.Length, ref BytesWritten); 
      } 

      catch 
      { 
       // 
      } 


     }); 

    } 
+1

Удалите пустой блок 'catch' и поделитесь с нами исключением (или ошибкой компилятора), если вы его получите. –

+0

Расскажите нам, что вы получаете, и что вы ожидаете получить. Мы не можем видеть, что здесь обрабатывается. –

+0

Что происходит точно? –

ответ

0

Просто используйте этот код (ваша проблема не объясняется очень хорошо, так что я думаю, что это была ваша проблема):

Match m = reg.Match("some input"); // To get the match 
if (!m.Success) return; // (or throw error) Returns when the input string didn't match your pattern 
Byte[] val = Encoding.ASCII.GetBytes(m.Value); // Gets the result of your match 

Вы также можете просто сделать Match m = Regex.Match("your input", "^[a-zA-Z0-9]*$"), чтобы получить матч

Ваш шаблон будет соответствовать «» (пустой), «a» и «ab3123», поскольку любой символ az, AZ и 0-9 разрешен 0 или более раз. Возможно, вы хотите использовать +, а не *, поэтому пустая строка не будет разрешена. Используйте «^. + $», Чтобы разрешить любому символу или «^. +? $» Также разрешить пустые строки.

+0

Благодарим за ответ! Но что я должен поставить как «ваш вклад»? Здесь: Match m = Regex.Match («ваш вход», «^ [a-zA-Z0-9] * $») –

+0

Я не знаю, что вы здесь делаете. Вы также можете сделать PlayerConntected + = (отправитель объекта, PlayerConnectedEventArgs e) => {...} вместо + = новое действие и использовать информацию e (я не знаю, существует ли PlayerConnectedEventArgs). – thijmen321

+0

или я только заметил, что вы также можете использовать player.XXX – thijmen321

Смежные вопросы