Показать сообщение отдельно
  #1  
Старый 27.05.2018, 20:31
Taras2020 Taras2020 вне форума
Прохожий
 
Регистрация: 15.01.2018
Сообщения: 36
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Немного дополнить код Delphi XE

Можете помочь добавить рандомную замену + Что бы слова для замены вводились в memo:
К примеру в memo ввожу слово Test заменить на а слово Test2 заменить на и между каждым словом разделитель |.

Пример в Memo:
Test|Замена1|Замена2|Замена3
Test2|Замена1|Замена2|Замена3

Сейчас, в этом коде, нужно вводить слово для замены в Edit2 и одну замену этого слова в Edit3

Вот мой код, где исправить:
Код:
procedure ScanDir(path : string);
var
         sr : TSearchRec;
  FileAttrs : Integer;
          s : tstringlist;
       a, b :  string;
begin
  path := IncludeTrailingPathDelimiter(path);
  if FindFirst(path + '*.*', faAnyFile, sr) = 0 then  begin
    repeat
      if (sr.Name <> '.') and (sr.Name <> '..') then
        if (sr.Attr and faDirectory) = faDirectory then
        begin
          Form1.Memo1.Lines.Add('Отображение лога: ' + path + sr.Name);
          ScanDir(path + sr.Name);
        end
        else
        begin
                s:=tstringlist.create;
                s.LoadFromFile(path + sr.Name);
                s.text:=StringReplace(s.Text,Form1.Edit2.Text,Form1.Edit3.Text,[rfreplaceall]); //
                s.SaveToFile(path + sr.Name);
                FreeAndNil(s);
        end;
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
dirName: string;
begin
  if SelectDirectory('Выберите дерикторию','C:\Users\kk\Desktop\Ttt\', dirName) then // тут меняет слово с edit2 на то что в Edit 3
  Edit1.Text:= (dirName);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
ScanDir(Edit1.Text+'\'); // тут путь к папке
end;
Ответить с цитированием