Delphi 日志文件处理

亦信 2015-12-23 11:36:58
现在有一个日志文件,里面内容大致如下:

2015-01-01 14:03:23 设备1 故障

2015-01-01 15:00:00 设备1 正常

2015-01-02 12:02:00 设备2 故障

2015-01-02 13:00:00 设备1 故障

2015-01-02 13:05:00 设备1 正常

2015-01-02 13:08:00 设备2 正常

现在想处理下这个文件,生成如下格式的信息:

2015-01-01 设备1 14:03:23(故障开始时间) 15:00:00(故障恢复时间)

2015-01-02 设备1 13:00:00(故障开始时间) 13:05:00(故障恢复时间)

2015-01-02 设备2 12:02:00(故障开始时间) 13:08:00(故障恢复时间)

这种怎麽处理呢????
...全文
182 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
亦信 2015-12-24
  • 打赏
  • 举报
回复
引用 1楼pathletboy 的回复:
按行解析扫描进行处理,建立结构体如下
  TDeviceInfo = packed record
    Name: string;
    FaultTime: TDateTime;
    NormatTime: TDateTime;
  end;
解析到故障记录,先填充Name及FaultTime, 解析到恢复正常,根据设备名搜索出对应的记录填充NormalTime,然后就把该结构体依照你想要的格式输出到文件。
正在试
亦信 2015-12-24
  • 打赏
  • 举报
回复
引用 2楼doloopcn 的回复:
var LogFile:TStringList; i:Integer; begin LogFile:=TStringList.Create; LogFile.LoadFromFile('日志文件'); for i:=0 to LogFile.Count-1 do StringReplace(LogFile[i],' ',','); LogFile.SaveToFile('转换成功的CSV文件'); 这段代码是把你的日志文件转换为CSV,之后你就可以用ADOQuery能过JET当数据表一样操作记录了
还是没明白
doloopcn 2015-12-24
  • 打赏
  • 举报
回复
var LogFile:TStringList; i:Integer; begin LogFile:=TStringList.Create; LogFile.LoadFromFile('日志文件'); for i:=0 to LogFile.Count-1 do StringReplace(LogFile[i],' ',','); LogFile.SaveToFile('转换成功的CSV文件'); 这段代码是把你的日志文件转换为CSV,之后你就可以用ADOQuery能过JET当数据表一样操作记录了
pathletboy 2015-12-23
  • 打赏
  • 举报
回复
按行解析扫描进行处理,建立结构体如下
  TDeviceInfo = packed record
    Name: string;
    FaultTime: TDateTime;
    NormatTime: TDateTime;
  end;
解析到故障记录,先填充Name及FaultTime, 解析到恢复正常,根据设备名搜索出对应的记录填充NormalTime,然后就把该结构体依照你想要的格式输出到文件。

16,742

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧