Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Правка файла в HEX [D5, Win2k]


-Jack- ©   (2002-05-10 16:51:00) 

Скажите, как мне программно поменять в файле значение по адресу допустим 0x0000009A на FF? Как вообще прочитать файл в HEX?


-Jack-   (2002-05-14 10:56:00) [1]

Если б когда я писал этот вопрос, знал что есть inttohex(...), то я б вопрос не писал =)))


-Jack-   (2002-05-13 06:23:00) [2]

Причём тут счисления, я это умею. Там же не надо в двоичную переводить. Раз такой умный взял бы да сказал как сделать.


BAHO   (2002-05-13 05:31:00) [3]

Прочти книжечку "Системы счисления" в частности раздел шестнадцатеричная...


-Jack-   (2002-05-12 16:51:00) [4]

Указатеть с вещественным числом вроде не совместим. Как нить перевести мона? Как мне сделать чтоб я в одном эдите ввожу число, а оно отображалось в другом в HEX?


Anatoly Podgoretsky   (2002-05-12 15:52:00) [5]

-Jack- (12.05.02 15:07)
P := Pointer(Integer(P) + 1)


-Jack-   (2002-05-12 15:36:00) [6]

...и ещё вся эта фигня не хочет отображаться в эдите.


-Jack-   (2002-05-12 15:07:00) [7]

Скажите как можно сдвинуть адрес на один байт вправо не переписывая его весь. Например с 00000281 на 00000282.


-Jack-   (2002-05-11 15:50:00) [8]

Всем спасибо, на мысль натолкнули =)


[NIKEL]   (2002-05-10 17:33:00) [9]

попоробуй это

procedure TForm1.Button1Click(Sender: TObject);
var
f:TFileStream;
s:byte;
begin
//Открываем нужный файл
f:=TFileStream.Create("твойфайл.exe",fmOpenReadWrite);
//переходим на нужную позицую в файле(твой адрес)
f.Seek($0AC0E9,soFromBegining);
//читаем текущее значение (можно узнать чё там находиться)
f.Read(s,size(s));
//записываем твой FF
s:=$FF;
//возвращаемся обратно
f.Seek($0AC0FE,soFromBegining);
//записываем новое значение
f.write(s,sizeof(s));
f.Free;
end;



Olgerd   (2002-05-10 17:22:00) [10]

Я просто читаю с помощью TFileStream в буфер, например
var Buff:char;
FileStream1.Seek($0000009A,soBeginning);
FileStream1.ReadBuffer(Buff,1);
Ord(Buff) - будет номер твоего символа


Anatoly Podgoretsky   (2002-05-10 17:14:00) [11]

В HEX то зачем, работай с двоичным файлом


Наверх

Титульная страница Поиск, карта сайта Написать письмо