【问题标题】:Finding the line number of a specific string in a text file using Delphi使用 Delphi 在文本文件中查找特定字符串的行号
【发布时间】:2018-09-24 11:00:56
【问题描述】:

我想实现一个 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.

【问题讨论】:

  • 不幸的是,我们通常不能为人们从头开始编写程序,因为显然公众对此的要求太多了。您是否有一些您尝试过的代码给您带来麻烦?
  • 下面的程序可以工作并帮助我在文本文件中找到一个特定的字符串。在分配的文本文件的第 4 行 (sl[i] = sl[4]) 上可以直观地找到“字符串”(使用 RAD 调试布局)。但我希望我的程序自动输出我的字符串所在的行,并计算 .txt 文件中相同的出现次数

标签: string function delphi-2009


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2014-11-12
    • 2017-10-03
    相关资源
    最近更新 更多