• 7174阅读
  • 4回复

如何直接读取TXT文本的最后一行? [复制链接]

上一主题 下一主题
离线sysulyf
 

只看楼主 倒序阅读 楼主  发表于: 2009-07-29
— 本帖被 XChinux 执行加亮操作(2009-07-30) —
如题,文本内容较多,因为只是需要用到最后一行,逐行读取的话肯定会降低效率,请问有没有直接可以读取最后一行的方法呢?

另外,如果该文本是不断更新的,如何实时检测(或每隔固定时间检测,如1秒)该文本是否有新内容添加呢?

谢谢!
离线hawkyz0919
只看该作者 1楼 发表于: 2009-07-29
这里有个java版的读取文本文件最后一行,可以借签下
FileInfo fi=new FileInfo("大文件");
FileStream fs = new FileStream("大文件");
StreamReader reader = new StreamReader(fs);
我的想法,
1.获取文件大小fi.Length
2.设置文件流Positions属性为legtn-500,也就是把文件指针定位在倒数500字节
3. reader.ReaderLine();string result=reader.ReaderLine(); 第一个readerLine读取到最后一个换行,第二个ReaderLine读取剩余的,也就是最后一行
4.当然,有可能后…
离线sysulyf

只看该作者 2楼 发表于: 2009-07-29
谢谢楼上的兄弟,因为导入文本时已经全部读取文本中的各项字段,并存入到一个list中了,所以后来我就直接用list<T>::const_iterator it = data.end()直接指到list末尾,再通过it--使it指向最后一行
离线sysulyf

只看该作者 3楼 发表于: 2009-07-29
但如果文本是不断更新的,如每秒钟添加一行数据,这时如何读取最后一行呢?
离线sysulyf

只看该作者 4楼 发表于: 2009-07-30
谢谢2楼兄弟的提醒,最后用C中的fseek()和ftell()函数搞定了
快速回复
限100 字节
 
上一个 下一个