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