Запись в файл, Delphi
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Запись в файл, 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 сделать замену слова в файле на слово любой длины?
|
|
|
RE: Запись в файл, Delphi - 2009-04-04 01:15:28.756666
|
|
|
SkyLinE215
Сообщений: -986
Оценки: 0
Присоединился: 2007-08-27 10:25:44.570000
|
var
before, after : string;
begin
// заменим 'A' на 'THE'
before := 'This is a way to live A big life';
after := StringReplace(before, ' a ', ' THE ',
[rfReplaceAll, rfIgnoreCase]);
ShowMessage('Before = '+before);
ShowMessage('After = '+after);
end; Before = This is a way to live A big life After = This is THE way to live THE big life
|
|
|
RE: Запись в файл, Delphi - 2009-04-04 12:29:14.430000
|
|
|
unconnected2
Сообщений: 332
Оценки: 0
Присоединился: 2009-01-16 17:56:12.400000
|
Это кажется не то, что нужно. процедура в моём посте ищет строку в шестнадцатеричном представлении файла и заменяет её на нужную. В принципе, я уже нашёл решение, просто следует резервировать больше места с помощью пробелов…
|
|
|
|
|