• 5738阅读
  • 6回复

[提问]【已解决】QT写文件时,当前位置如何获得? [复制链接]

上一主题 下一主题
离线米尔利安
 

只看楼主 倒序阅读 楼主  发表于: 2011-03-15
如题。现在用QTextStream操作一个QFile。
QFile file(fileName);
file.open(QIODevice::WriteOnly);
QTextStream out(&file);

...
out << "******************"
...
out << "******************"
...

现在我已经往file里写进了若干字符,想要知道当前的位置(就是已经写进去的内容的长度),我应该用哪个方法获得呢?(此时文件尚未关闭)
[ 此帖被米尔利安在2011-03-29 11:00重新编辑 ]
我们在天上的父,愿人都尊你的名为圣。
愿你的国降临。
愿你的旨意行在地上,如同行在天上。
离线wxj120bw

只看该作者 1楼 发表于: 2011-03-15
看qfile里有没有at函数 如果有 能瞒住楼主的要求
离线jdwx

只看该作者 2楼 发表于: 2011-03-15
QT的没注意过,C C++ 用Seek(),QTextStream::pos()
[ 此帖被jdwx在2011-03-15 21:51重新编辑 ]
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线米尔利安

只看该作者 3楼 发表于: 2011-03-16
谢谢楼上的各位。但是问题还是没有解决。
我用QTextStream::pos()函数得到的值不好理解,并不像是文件的长度……而且这个值并不会随着往out里写入文字而改变。而at函数是压根儿就没有的。只有一个atEnd。。。

现在采取的折中办法是先关闭文件,然后判断文件的大小……
我们在天上的父,愿人都尊你的名为圣。
愿你的国降临。
愿你的旨意行在地上,如同行在天上。
离线wxj120bw

只看该作者 4楼 发表于: 2011-03-16
你别调用QTextStream::pos函数,调用QFile::pos函数 试试
离线jdwx

只看该作者 5楼 发表于: 2011-03-16
现在的文件系统都是有缓冲的,想得到写入的文件长度,必须要先强制写入就是这个函数void QTextStream::flush ()。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线米尔利安

只看该作者 6楼 发表于: 2011-03-29
感谢楼上,使用flush刷新之后,可以得到文件长度了。
我们在天上的父,愿人都尊你的名为圣。
愿你的国降临。
愿你的旨意行在地上,如同行在天上。
快速回复
限100 字节
 
上一个 下一个