Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Патчинг файлов


Автор: CODeRUS 17.7.2008, 10:21
можно ли изменить пару байт в нескольких (около 100) местах не перечитывая файл до нужного места?

Автор: Alexeis 17.7.2008, 10:37
  Установить файловый указатель в нужную позицию и записать туда значение.

Автор: CODeRUS 17.7.2008, 14:04
 smile )

Автор: Saygak 17.7.2008, 14:40
Код

uses SysUtils;

...

procedure PathFile(const FileName: String);
var
  hFile, i: Integer;
  Pos, Val: Integer;
begin
  hFile := FileOpen(FileName, fmOpenWrite);
  if hFile < 0 then raise Exception.Create('Файл %s не найден (или к нему закрыт доступ записи)', [FileName]);
  FileSeek(Pos{Идёшь туда куда надо (номер байта который нужно подправить)}, 0{Ноль- значит номер байта с начала фала});
  FileWrite(hFile, Val{Значение которое нужно записать}, SizeOf(Val){Размер значения !!! Желательно поставить цифру руками});
  ... {Делаешь предыдущие инструкции столько раз в скольких местах нужно пропатчить (естественно нужно знать где (Pos) и что (Val) патчить)}
  FileClose(hFile);
end;

Автор: CODeRUS 17.7.2008, 16:01
ох я дерево)) пасиба большое)

Добавлено через 4 минуты и 18 секунд
и значит так же можно и FileRead сделатьи тогда он мне мой byte вернет?

Автор: CODeRUS 17.7.2008, 18:33
супер работает) спасибо всем!

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