Поиск и замена всех текстовых данных в txt файлах папки, есть софт?

Всем привет , хочу узнать есть ли такой софт . К примеру указываю папку с txt файлами программа открывает каждый ищет то что нужно и заменяет этот во всех . У меня такая ситуация , в каждом файле стоит адрес локального сервера , нужно сменить а их очень много что бы с экономить время запускаю программу она ищет все test1.ru и заменяет на нужный мне . Есть ли такая программа ?
  • Вопрос задан
  • 230 просмотров
Пригласить эксперта
Ответы на вопрос 3
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
notepad++ умеет
Ответ написан
Консольная утилита sed умеет делать это. Cygwin/Linux/BSD.
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
procedure TMainFM.DoLine( Path: String );
  var SearchRec: TSearchRec;
      Result: Integer;
      FC: TStringList;
begin
  FC  := TStringList.Create;
  Result := FindFirst( Path + '*.*', faAnyFile, SearchRec);
  while DoIt and ( Result = 0 ) do begin
    // Рекурсия папок:
    if ( SearchRec.Attr and faDirectory ) <> 0 then begin
      if Copy( SearchRec.Name, 1, 1 ) <> '.' then DoLine( Path + SearchRec.Name + '\');
    end else begin
      if ( ExtractFileExt( SearchRec.Name ) = laExt.Text ) then begin
        FC.LoadFromFile( Path + SearchRec.Name );
        if Pos( edFind.Text, FC.Text ) > 0 then begin
          FC.Text := StringReplace( FC.Text, edFind.Text, edChange.Text, [ rfReplaceAll ]);
          FC.SaveToFile( Path + SearchRec.Name );
          Inc( FChange );
          laChange.Text := IntToStr( FChange );
          lbFile.Items.Add( Path + SearchRec.Name + ' [замена]' );
        end else begin
          lbFile.Items.Add( Path + SearchRec.Name );
        end;
        Inc( FFind );
        laAll.Text := IntToStr( FFind );
        lbFile.ItemIndex := ( lbFile.Items.Count - 1 );
      end;
    end;
    Application.ProcessMessages;
    Result := FindNext( SearchRec );
  end;
  FindClose( SearchRec );
  FC.Free;
  if Path = laPath.Text then DoIt := False;
end;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы