使用Delphi查找文本文件中特定字符串的行号

时间:2018-09-24 11:00:57

标签: string function delphi-2009

我想实现一个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 :(得分:0)

与任何问题一样,将有许多可能的方法。我没有特定的解决方案,但首先将文本加载到字符串列表中。 TStringList具有 LoadFromFile 方法,然后 ItemIndex 属性将提供行号。您仍然需要找出最佳方法来搜索给定的字符串。 for / next 循环遍历字符串列表中的项目将是最简单的。如果文件较小,则此方法非常简单有效。您需要尝试在速度成为问题之前文件可以放多大。

相关问题