/*
* 作用是查找并删除文件“回忆录”中一句话未结束时的换行
* 通常这种换行是从pdf文件或网页中复制文本产生的
* 本程序的功能可由word等文本编辑器代替……
*/
#include <QCoreApplication>
#include <QString>
#include <QFile>
#include <QTextStream>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString fileName = "C:/Users/lsw/Desktop/回忆录.txt";
QString newfileName = "C:/Users/lsw/Desktop/回忆录_new.txt";
QString str1, str2;
QFile file(fileName); //打开文件
QFile newfile(newfileName);
if(!file.open(QIODevice::ReadWrite | QIODevice::Text))
{
//错误处理
}
if(!newfile.open(QIODevice::ReadWrite | QIODevice::Text))
{
}
QTextStream out(&file); //文本流
QTextStream in(&newfile);
str2=out.read(1); //每read()一次光标自动加一
in << str2;
while( !out.atEnd() ) //判断文件是否结束
{
str1 = out.read(1);
//当换行符前不是句号时,忽略这个换行符
if(str1 != "\n" || str2 == "。")
{
in << str1;
if(str1=='\n')
{
in << "\t";
}
}
str2=str1;
}
file.close(); //关闭文件
newfile.close();
qDebug() << "run over";
return a.exec();
}
作者构思这个程序时,本想用一个类来实现,无奈写着写着就成了面向过程,可能是写过太多的C了罢。
要想写好Qt程序,务必还要学会OOP的思想,以后有所领悟后再重写此程序。
本文作为笔记,供自己参考。