标题:【提问】关于大文件的显示问题
作者:叹叹想
日期:2005-11-01 11:55
内容:
我用的是linux的操作系统,自己写了一个显示文件的对话框,显示文本用的是qtextedit类。小文件的显示都比较快。但是要显示大一些的文件就会很慢(读过最大的文件是300M的,当文件大到30多兆的时候读的就很慢了)
后来加了在程序中加了一条Qt::LogText,读大文件的,速度是快了一些,但是比较大的还是很慢。可是这种模式下的textedit有一些符号不能按照文件的原样读出来。像中括号还有一些其他的符号等等,我看qt文档上还写到cursor movement will not work,指针不能用。我还想实现查找功能,所以需要用到这些。
开始以为是缓存读大数据太慢,但是同样的文件用vi编辑打开就要快很多。
大家有什么好的方法请告诉我,谢谢!
#1 [forgotten 11-01 14:08]
vi不会一次全部读入文件的全部内容。你一次只读可供显示的1屏或几屏数据就会快些
#2 [叹叹想 11-01 14:59]
可是我应该怎么把文件分才合适呢。我也想过分成一块一块的读,用fread读,可是不能像vi一样控制到一行读完了分页,分开的地方肯定是不定的,有时候最后还有乱码。不知道应该怎么办。谢谢大家。
#3 [zaurus 11-01 19:06]
或许这样能解决乱码问题
QTextCodec *codec = QTextCodec::codecForName("GB18030-0");
QTextStream t;
t.setCodec(codec)l
#4 [叹叹想 11-02 15:01]
我先看看,不知道qt中有没有分块读的,比如说一次读10M,用QTextStream好像只能是读全部或是一行什么的。
#5 [wuxian610 11-02 15:50]
同志们, 参看该帖子:
http://www.qtcn.org/bbs/read.php?tid=2005&page=1&toread=1
没解决再支一声.