|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Запись в бинарный файл
Народ, такая проблема. Как в двоичном (бинарном) файле поменять символ, стоящий на определенной позиции?
Например, если сделать так: procedure AddStrToFile(S:string;const FileName:string); var f:TFileStream; begin f.Position:=605; f.Write(pointer(s)^,length(s)); f.Destroy; end; - то символ (строка) S записываецца в файл на эту позицию (605), а надо штобы заменялась. Но не обязательно таким образом (TFileStream), может есть ищо какойнть способ... Заранее спасибо! |
#2
|
|||
|
|||
все, разобрался:
procedure Replace(FileName:string); var f: file; l: Longint; oldstring, newstring, s: string; begin oldstring := '_NullFlags'; newstring := '_NullFlags.C'; s := oldstring; AssignFile(f, FileName); Reset(f, 1); for l := 0 to FileSize(f) - Length(oldstring) - 1 do begin Application.ProcessMessages; Seek(f, l); BlockRead(f, oldstring[1], Length(oldstring)); if oldstring = s then begin Seek(f, l); BlockWrite(f, newstring[1], Length(newstring)); ShowMessage('String successfully replaced!'); end; Application.ProcessMessages; end; CloseFile(f); end; |