使用Qt读取文件最后一行
时间:2010-06-30 来源:idx001
使用Qt读取大文件最后一行
589 views, Qt, by Allen Dang.正在写的一个小软件需要这样一个功能,在开始一个新的下载任务前,先尝试在本地寻找是否已经存在同名文件。如果有,那读取文件最后一行 文本,这行文本里面记录了上次下载的一些信息,然后从断点开始继续下载。
最后一行文本的格式很简单,就是[页码|行号],例如[160|8]就代表160页第8行。读取的基本思路就是,先把文件指针移动到距离文件尾部20个字节的地方(这里留20个字节是因为我的最后一行信息很简单),然后循环读取每一行,最 后一次读取到的就是最后一行文本。
目标文本文件最后一行如下: [160|8] 具体代码如下:QFile file("C:\\test.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qint64 len = file.size();
QTextStream reader(&file);
QString lastLine;
if (reader.seek(len-20))
{
while (!reader.atEnd())
{
lastLine = reader.readLine();
}
}
file.close();
QRegExp re("\\[(\\d+)\\|(\\d+)\\]");
if (re.indexIn(lastLine, 0) != -1)
{
QString page = re.cap(1); //page = 160
QString pos = re.cap(2); //pos = 8
}
}
相关阅读 更多 +
排行榜 更多 +

<img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0526/1748214895997494.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0526/1748214895997494.png" alt="机器人狙击手最新版" />
飞行射击 下载
<img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0526/1748213241693464.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0526/1748213241693464.png" alt="我的枪有子弹最新版" />
飞行射击 下载- 4 <img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0525/1748174029364713.jpg" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0525/1748174029364713.jpg" alt="战斗地带汉化版" />下载58.6 MB · 92℃
1970-01-01
- 5 <img preview="http://pic.pdowncc.com/uploadimg/img/2025/0526/1748208215706549.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/img/2025/0526/1748208215706549.png" alt="超级兔子人联机版手机版" />下载45.51 MB · 93℃
1970-01-01
- 6 <img preview="http://pic.pdowncc.com/uploadimg/img/2025/0526/1748208215706549.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/img/2025/0526/1748208215706549.png" alt="超级兔子人联机版手机版" />下载169.80 MB · 99℃
1970-01-01