Нахождение номера строки определенной строки в текстовом файле с использованием Delphi - PullRequest
0 голосов
/ 24 сентября 2018

Я хочу реализовать функцию Delphi, которая возвращает номер строки и вхождение определенной строки в текстовом файле.скажем, в данном текстовом файле одна из строк: #1.1 Torsional Stiffness [Tz] вместе с другими текстовыми данными.

Если я хочу выяснить, где Torsional Stiffness находится в текстовом файле, какой код Delphi должен быть реализован ??

Следующая программа работает и помогает мне найти конкретную строку внутритекстовый файл.

Строка визуально находится в строке 4 (sl[i] = sl[4]) назначенного текстового файла ( с использованием макета отладки RAD ).Но я хочу, чтобы моя программа автоматически выводила строку, в которой находится моя строка, а также подсчитывала количество ее повторений в файле .txt.

program findingText;

uses
  SysUtils,
  Dialogs,
  Classes;

procedure FindText;
var
  sl: TStringList;
  i: Integer;
  searchText: string;
  //fileName: TextFile;

begin
 searchText  := 'Torsional Stiffness matrices';
  sl := TStringList.Create;
  try
    sl.LoadFromFile('c:\Users\fro.txt');
    for i := 0 to sl.Count-1 do
      if Pos(searchText, sl[i])>0 then
        begin
          ShowMessage('Yes');
          //ShowMessage(sl[i]);
          Break;
        end;
  finally
    sl.Free;
  end;
end;

begin
 FindText;
 //readln;
end.

1 Ответ

0 голосов
/ 25 сентября 2018

Как и в любой проблеме, будет много возможных подходов.У меня нет конкретного решения, но я бы начал с загрузки текста в список строк.TStringList имеет метод LoadFromFile , а свойство ItemIndex предоставит номер строки.Вам все равно нужно найти лучший метод для поиска заданной строки.Цикл for / next , повторяющийся в элементах списка строк, будет проще всего.Если файл относительно небольшой, то этот подход очень прост и эффективен.Вам нужно поэкспериментировать с тем, насколько большим может быть файл, прежде чем скорость станет проблемой.

...