Как удалить из текстового файла все строки по шаблону в delphi?

Пользователь

от cooper.berge , в категории: Другие , 2 года назад

Как удалить из текстового файла все строки по шаблону в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marshall.cummings , 2 года назад

@cooper.berge 

В Delphi можно удалить строки из текстового файла, соответствующие заданному шаблону, следующим образом:

  1. Открыть файл с помощью TFileStream или TStringList.
  2. Прочитать каждую строку из файла и проверить ее на соответствие заданному шаблону.
  3. Если строка соответствует шаблону, то она не добавляется в выходной файл.
  4. Если строка не соответствует шаблону, то она добавляется в выходной файл.
  5. После обработки всех строк сохранить выходной файл.


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
var
  InputFile, OutputFile: TStringList;
  i: Integer;
begin
  InputFile := TStringList.Create;
  OutputFile := TStringList.Create;
  try
    InputFile.LoadFromFile('input.txt');
    for i := 0 to InputFile.Count - 1 do
    begin
      if not Pos('шаблон', InputFile.Strings[i]) > 0 then
        OutputFile.Add(InputFile.Strings[i]);
    end;
    OutputFile.SaveToFile('output.txt');
  finally
    InputFile.Free;
    OutputFile.Free;
  end;
end;


В этом примере строки из файла 'input.txt', содержащие подстроку 'шаблон', не будут записаны в файл 'output.txt'.

Пользователь

от josie , год назад

@cooper.berge 

Приведенный выше код позволяет удалить строки, содержащие заданный шаблон, из текстового файла. Замените 'шаблон' на ваш конкретный шаблон, который вы хотите использовать для удаления строк.


Обратите внимание, что этот код работает с использованием TStringList, который полностью загружает файл в память. Это может быть нежелательно для больших файлов. Если вы работаете с большими файлами, рекомендуется использовать класс TFileStream для считывания и записи строк в файл.