Показать сообщение отдельно
  #6  
Старый 31.01.2018, 11:41
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Не стал разбираться досконально с кодом, но что-то такое должно получится. Imikle все и так написал.

Код:
procedure Tfrm_Main.Run;
var afList: TStringDynArray;
    i, j, k: integer;
    L, rL{, fL}: TStringList;
    NewName, tmp: String;
//====
F_Src, F_Tgt : TextFile;
  S : String;
begin
 memo_Log.Lines.Add(Format('Начало обработки: %s', [DateTimeToStr(Now)]));
 memo_Log.Lines.Add('///');
 memo_Log.Lines.Add('');
 L := TStringList.Create;
 for i := 0 to memo_Folders.Lines.Count - 1 do
  
begin
   afList := TDirectory.GetFiles(memo_Folders.Lines[i], '*.txt', SO);
   for j := 0 to Length(afList) - 1 do
    L.Add(afList[j]);
  end;
 rL := TStringList.Create;
 rL.Text := Trim(memo_List.Text);
 k := 0;
 //fL := TStringList.Create;
 for i := 0 to L.Count - 1 do
  
begin
   memo_Log.Lines.Add(Format('Обработка файлов %s', [L.Strings[i]]));
   //fL.LoadFromFile(L.Strings[i]);
   AssignFile(F_Src,L.Strings[i]);
  Reset(F_Src);
   tmp := ExtractFileName(L.Strings[i]);
   tmp := Copy(tmp, 1, Pos('.', tmp) - 1);
   NewName := Format('%s%s.%s', [ExtractFilePath(L.Strings[i]),
                                     tmp,
                                     FormatDateTime('ddmmyy_hhnn', Now)]);

  AssingFile(F_Tgt,NewName);
  Rewrite(F_Tgt);

if rg_Order.ItemIndex = 1 then
    for j := 0 to rL.Count - 1 do
     rL.Exchange(j, RandomRange(0, rL.Count));

While Not EOF(F_Src) Do
    Begin
      ReadLN(F_Src,S);
      S := StringReplace(S, edt_Word.Text, rL.Strings[k], RF);
      WriteLn(F_Tgt,S);
inc(k);
     if k = rL.Count then k := 0;
    End;
  // for j := 0 to fL.Count - 1 do
    //begin
     //fL.Strings[j] := StringReplace(fL.Strings[j], edt_Word.Text, rL.Strings[k], RF);
     //inc(k);
     //if k = rL.Count then k := 0;
    //end;
   //fL.SaveToFile(NewName);
  CloseFile(F_Src);
  CloseFile(F_Tgt);
   memo_Log.Lines.Add(Format('Сохранение под именем %s', [NewName]));
   memo_Log.Lines.Add('');
  end;
 memo_Log.Lines.Add('///');
 memo_Log.Lines.Add(Format('Окончание обработки: %s', [DateTimeToStr(Now)]));
 //fL.Free;
 rL.Free;
 L.Free;
 btn_Next.Enabled := false;
 LoadBMP(btn_Prev, 5);
 btn_Prev.Caption := 'С начала';
end;

Кстати, есть полезная функция - ExtractFileExt
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием