В данном коде при обработке файла в 200 мегабайт выскакивает ошибка: out of memory. Как исправить Данную ошибку в этом коде ?
var
list:TStrings;
i:integer;
str:string;
begin
list :=TStringList.Create;
list.LoadFromFile(OpenDialog1.FileName);
for i :=list.count-1 downto 0 do
begin
str :=list.Strings[i];
while Pos(edit1.text, str) >0 do
begin
Delete(str, Pos(edit1.text, str), Length(edit1.text)) ;
list.Strings[i] :=str;
end;
end;
list.SaveToFile('out.txt');
list.free;
end;
Ответ
var
txtIn, txtOut: TextFile;
str: string;
begin
AssignFile(txtIn, OpenDialog1.FileName);
AssignFile(txtOut, ExtractFilePath(OpenDialog1.FileName) + 'tmp.txt');
Reset(txtIn);
Rewrite(txtOut);
while not EOF(txtIn) do
begin
ReadLn(txtIn, str);
// ...
WriteLn(txtOut, str);
end;
CloseFile(txtOut);
CloseFile(txtIn);
// move 'tmp.txt' to OpenDialog1.FileName
end;
Комментариев нет:
Отправить комментарий