【发布时间】:2011-07-15 04:09:56
【问题描述】:
有一个程序可以创建一个日志文件。
这是它创建的日志文件的示例:
此程序将此日志文件加载到 TStringGrid 中。日志文件是制表符分隔的。一个单元格可以有一个空格“”。
我如何使用 TStringGrid 或替代方法将这样的日志文件加载到该程序中?
谢谢!
【问题讨论】:
标签: delphi logging tstringgrid
有一个程序可以创建一个日志文件。
这是它创建的日志文件的示例:
此程序将此日志文件加载到 TStringGrid 中。日志文件是制表符分隔的。一个单元格可以有一个空格“”。
我如何使用 TStringGrid 或替代方法将这样的日志文件加载到该程序中?
谢谢!
【问题讨论】:
标签: delphi logging tstringgrid
此过程将日志加载到字符串列表中。对于日志中的每一行,它分配网格控件中相应行的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;
【讨论】:
Grid.Rows[i].Delimiter := #9,后跟Gird.Rows[i].StrictDelimiter := True,然后使用Grid.Rows[i].DelimitedText,而不是Grid.Rows[i].CommaText。这是假设Grid.Rows[i] 实际上是TStrings,我没有检查。