Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Замена совпадений во всех текстовых файлах


Автор: dize 21.10.2010, 13:49
Возник вопрос по работе с файлами. Хоть и довольно много информации в интернете, решение данной проблемы я так и не нашел, поэтому надеюсь на Вашу помощь.
Суть в том, что нужно произвести замену совпадений во всех текстовых файлах в выбранной директории.

Замена осуществляется следующим образом
Код

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;

Автор: superVad 21.10.2010, 14:07
Чего то не уловил - совпадения чего надо искать и на что заменять?

Или тебе просто надо перебрать все файлы в директории?

Автор: dize 21.10.2010, 14:30
Цитата(superVad @  21.10.2010,  14:07 Найти цитируемый пост)
Чего то не уловил - совпадения чего надо искать и на что заменять?Или тебе просто надо перебрать все файлы в директории?

Что в файле искать(te:='SPBFUT589000,,';) и на что заменять(re:='SPBFUT589000,SPBFUT00TP7/,';), указано в примере. Проблема в том, что нужно перебрать все текстовые файлы в выбранной пользователем директории и произвести последовательную замену этих совпадений внутри каждого файла, по заданному условию.

Автор: Данкинг 21.10.2010, 16:11
Цитата(dize @  21.10.2010,  15:30 Найти цитируемый пост)
Проблема в том, что нужно перебрать все текстовые файлы в выбранной пользователем директории 

Ищи на форуме, неоднократно было, и в ДРКБ тоже. Затем, видимо, грузишь файл в TStrings, меняешь что нужно, и заново сохраняешь в файл под тем же именем.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)