Возник вопрос по работе с файлами. Хоть и довольно много информации в интернете, решение данной проблемы я так и не нашел, поэтому надеюсь на Вашу помощь. Суть в том, что нужно произвести замену совпадений во всех текстовых файлах в выбранной директории.
Замена осуществляется следующим образом
| Код | procedure TForm1.Replace(FileName: string; TextToFind: string; ReplaceWith: string); var FileContent: string; Ix: Integer; TTF_Length, RW_Length: Integer; F: System.Text; Symbol: Char; begin TTF_Length:= Length(TextToFind); RW_Length:= Length(ReplaceWith); AssignFile(F, FileName); Reset(F); FileContent:= ''; while not EOF(F) do begin Read(F, Symbol); FileContent:= FileContent + Symbol; end; CloseFile(F); Ix:= 1; repeat if Copy(FileContent, Ix, TTF_Length) = TextToFind then begin Delete(FileContent, Ix, TTF_Length); Insert(ReplaceWith, FileContent, Ix); Ix:= Ix + RW_Length; end else Inc(Ix); until Ix > Length(FileContent) - TTF_Length + 1; ReWrite(F); for Ix:= 1 to Length(FileContent) do Write(F, FileContent[Ix]); CloseFile(F); end;
procedure TForm1.Button1Click(Sender: TObject); var te,re:string; begin if Checkbox1.Checked=true then begin te:='SPBFUT589000,,'; re:='SPBFUT589000,SPBFUT00TP7/,'; end; Replace('forts.txt',te,re); end;
|
|