• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

文件内已有数据,想读取文件中的某一行数据,这个怎么判断?

981f972d18e83b30 2018-10-16 浏览量:725

文件内已有数据,想读取文件中的某一行数据,这个怎么判断?如文件内容有:
2018年10月15日   12:45:50    0102设备出现故障
2018年10月23日   15:32:12    0100设备出现故障
2018年10月10日   10:42:10    0101设备出现故障
2018年10月24日   13:15:23    0103设备出现故障

我想读读红色标注的那一行怎么实现?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 每行字符数相同的情况就非常方便了

    行字符数*行——记住,从0开始数。优秀程序员数数都是从0开始的

                           还有,WINDOWS的文本文件换行是两个字符,linux的换行是1个字符。

    然后用fseek这个函数进行定位,也可能是f_seek或f_lseek,要看你用的是什么库了


    如果每行字符数不确定,那就只有遍历文件了。

    计算机上的编程环境,通常提供有读一行的函数,比如readLine。写个循环读N行就行了。

    但FATFS不提供读一行的函数,只能从头开始逐个字符读,统计读到几个换行符就是读过几行。




    • 发布于 2018-10-16
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:10
  • 如果是固定行数,那就可以通过判断换行来判断这是第几行,也可以统计字符数。如果是针对特定的数据,可以通过检测数据的特征。对于你说的可以通过检测年月日来判断当前数据是不是你想要的。
    • 发布于2018-10-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 利用关键字查找功能,或者直接定位行查找
    • 发布于2018-10-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 纯文本格式的文件,没有字体颜色的,读纯文本需要根据内容不同来区别。比如第三行运行正常,1,2,4 行是故障,那就读一行判断最后四个字,就能找到你想要的行。

    如果是 linux 系统 可以用readline 一次读一行。最好是建议你看看 awk ,sed  , 这两个工具是 linux 下文本处理工具,很多程序和 makefile shell 等都使用这两个工具,很好用。

    2018年10月15日   12:45:50    0102设备出现故障
    2018年10月23日   15:32:12    0100设备出现故障
    2018年10月10日   10:42:10    0101设备运行正常
    2018年10月24日   13:15:23    0103设备出现故障

    • 发布于2018-10-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 文件内查找指定内容一般用fseek实现的,具体看用的是哪个文件系统
    • 发布于2018-10-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 文件查找的方式是通过关键字的方式进行逐次查找
    • 发布于2018-10-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以通过fseek指针读取一行文件的数据,指针会逐步下移。
    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以直接用fseek方式来处理,这样可以直接查找
    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

文件内已有数据,想读取文件中的某一行数据,这个怎么判断?