Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > HexTobyte????


Автор: ne0n 21.11.2007, 10:42
всем доюрого времени суток, проблема такая....сзначет вообще изначально мне нужно пропатчить файл, нужное значение я получаю, в виде целочисленного, потом перевожу в hex получаю например: 0006114D, теперь мне надо как то файл пропатчить этим значением, но перед этим чтоли как то получиь массив из байт??? схема которой я это вижу переходим на 1 адресс патчим на $00, второй $06, третий $11, четвертый на 4D....ну вообщем я что то ни как не пойму как это сделать...

Автор: Snowy 21.11.2007, 11:24
А зачем в хекс переводишь?
И в чём, собственно, проблема?

Автор: ama_kid 21.11.2007, 11:34
Цитата(ne0n @  21.11.2007,  10:42 Найти цитируемый пост)
как то получиь массив из байт???
А что мешает?
Код
var
  Value:integer;
  ArVal:array [1..4] of byte absolute Value;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
 ArVal[1]:=0;
 ArVal[2]:=0;
 ArVal[3]:=0;
 ArVal[4]:=0;
 Value:=StrToInt(Edit1.Text);    //  Edit1.Text содержит строку '$0006114D'
 ShowMessage(IntToHex(ArVal[4],2)+'-'+IntToHex(ArVal[3],2)+'-'+
             IntToHex(ArVal[2],2)+'-'+IntToHex(ArVal[1],2));
end;


Автор: ne0n 22.11.2007, 22:37
Цитата(Snowy @  21.11.2007,  11:24 Найти цитируемый пост)
А зачем в хекс переводишь?

да просто когда я патчил в 16-ричном формате типа $8c итп то программа которую я использовал для сравнения файлов(пропатченного и оригинального) работала корректно, в 10-ом выдавла еще левый байт smile  оказалось это просто глючная прога smile  попробовал использовать другие все ок, выдает разницу именно в 4 байта.всем спасибо!



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)