Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Запись в файл, Delphi

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Запись в файл, Delphi
Имя
Сообщение << Старые топики   Новые топики >>
Запись в файл, Delphi - 2009-04-04 00:39:39.240000   
unconnected2

Сообщений: 332
Оценки: 0
Присоединился: 2009-01-16 17:56:12.400000
Требуется открыть нетипизированный файл и на место определённого слова в нём вставить другое слово, введённое пользователем, например. Замена строки производится такой процедурой:

procedure ReplaceStr(FileName, OldStr, NewStr: String); var f: file; l: Longint; S: string; begin S := OldStr; AssignFile(f, FileName); Reset(f, 1); for l := 0 to FileSize(f) - Length(OldStr) - 1 do begin Application.ProcessMessages; Seek(f, l); BlockRead(f, OldStr[1], Length(OldStr)); if OldStr = S then begin Seek(f, l); BlockWrite(f, NewStr[1], Length(NewStr)); end; end; CloseFile(f); end;
Так вот, как я понял, длина нового слова должна соответствовать или быть меньше длины старого слова.. Как на Delphi сделать замену слова в файле на слово любой длины?
Post #: 1
RE: Запись в файл, Delphi - 2009-04-04 01:15:28.756666   
SkyLinE215

Сообщений: -986
Оценки: 0
Присоединился: 2007-08-27 10:25:44.570000
var &nbsp;&nbsp;before, after : string; begin &nbsp;//&nbsp;заменим 'A' на&nbsp;'THE' &nbsp;before := 'This is a way to live A big life'; &nbsp;after&nbsp;&nbsp;:= StringReplace(before, ' a ', ' THE ', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[rfReplaceAll, rfIgnoreCase]); &nbsp;ShowMessage('Before = '+before); &nbsp;ShowMessage('After&nbsp;&nbsp;= '+after); end;
Before = This is a way to live A big life
After = This is THE way to live THE big life
Post #: 2
RE: Запись в файл, Delphi - 2009-04-04 12:29:14.430000   
unconnected2

Сообщений: 332
Оценки: 0
Присоединился: 2009-01-16 17:56:12.400000
Это кажется не то, что нужно. процедура в моём посте ищет строку в шестнадцатеричном представлении файла и заменяет её на нужную. В принципе, я уже нашёл решение, просто следует резервировать больше места с помощью пробелов…
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Запись в файл, Delphi







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.