【问题标题】:Delphi: load file into TStringGridDelphi:将文件加载到 TStringGrid
【发布时间】:2011-07-15 04:09:56
【问题描述】:

有一个程序可以创建一个日志文件。

这是它创建的日志文件的示例:

此程序将此日志文件加载到 TStringGrid 中。日志文件是制表符分隔的。一个单元格可以有一个空格“”。

我如何使用 TStringGrid 或替代方法将这样的日志文件加载到该程序中?

谢谢!

【问题讨论】:

    标签: delphi logging tstringgrid


    【解决方案1】:

    此过程将日志加载到字符串列表中。对于日志中的每一行,它分配网格控件中相应行的CommaText 属性。该属性会自动将逗号和空格分隔的标记拆分为字符串。如果您有较新的 Delphi 版本,则可以改用 DelimitedText 属性,如果日志可能包含不带引号的逗号,这将更合适。

    procedure LoadLogFile(const FileName: TFileName; Grid: TStringGrid);
    var
      LogFile: TStrings;
      i: Integer;
    begin
      LogFile := TStringList.Create;
      try
        LogFile.LoadFromFile(FileName);
        Grid.RowCount := LogFile.Count;
        for i := 0 to Pred(LogFile.Count) do
          Grid.Rows[i].CommaText := LogFile[i];
      finally
        LogFile.Free;
      end;
    end;
    

    【讨论】:

    • 好!一件事 - 它可以是细胞中的空间。代码无法填充行。我有 Delphi 2010。
    • 请看原图:)
    • @maxfax,如果该图片是文本编辑器的图片,则您的文本列是制表符分隔或固定宽度。如果它们是制表符分隔的,请执行Grid.Rows[i].Delimiter := #9,后跟Gird.Rows[i].StrictDelimiter := True,然后使用Grid.Rows[i].DelimitedText,而不是Grid.Rows[i].CommaText。这是假设Grid.Rows[i] 实际上是TStrings,我没有检查。
    • 谢谢!!!除了 Gird.Rows[i].StrictDelimiter := True :)
    • @maxfax, if Not(EnglishGrammarGood) 然后尝试 AlwaysUseHave 除了结束; :-)
    猜你喜欢
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多