分享给有需要的人,代码质量勿喷。
//一、读取内容显示
void TxtReadWrite::xjOpenShowContent()
{
QString xjPath = QFileDialog::getOpenFileName(this, tr("选择TXT文件"),
QCoreApplication::applicationDirPath(), "文本文档(*.txt)");
if (xjPath.size() > 0)
{
ui.lineEdit->setText(xjPath);
ui.textEdit->clear();
xjShowTxt(xjPath);
}
}
void TxtReadWrite::xjShowTxt(QString xjPath)
{
QFile xjFile(xjPath);
if (!xjFile.open(QIODevice::ReadOnly))
return;
QString xjStr = "\0";
while (!xjFile.atEnd())
{
QString xjLine(xjFile.readLine());
xjStr += xjLine;
}
ui.textEdit->append(xjStr);
xjFile.close();
}
//二、读取写入
void TxtReadWrite::xjZhSave()
{
mxjPath = ui.lineEdit->text();
xjReadTxt(mxjPath, mxjMap);
QString xjWirtePath = mxjPath + ".txt";
xjWriteTxt(mxjMap, xjWirtePath);
}
//读取并转换
void TxtReadWrite::xjReadTxt(QString mxjPath, map<int, QString> &mxjMap)
{
mxjMap.clear();
QFile xjFile(mxjPath);
if (!xjFile.open(QIODevice::ReadOnly))
return;
QString xjNewLine = "\0";
QStringList xjStringList;
int i = -1;
while (!xjFile.atEnd())
{
QString xjLine(xjFile.readLine());
if (xjLine.contains("开始") || xjLine.contains("结束"))
{
xjStringList = xjLine.split('\n');
xjNewLine = xjStringList.at(0);
i++;
mxjMap[i] = xjNewLine;
}
else if (!xjLine.contains(","))
{
xjStringList = xjLine.split('\n');
xjNewLine = xjStringList.at(0);
}
else
{
xjStringList = xjLine.split('\n');
xjNewLine = xjNewLine + ":" + xjStringList.at(0);
i++;
mxjMap[i] = xjNewLine;
}
}
xjFile.close();
}
//写入
void TxtReadWrite::xjWriteTxt(map<int, QString> &mxjMap, QString mxjWritePath)
{
QFile xjFile(mxjWritePath);
if (!xjFile.open(QIODevice::WriteOnly | QIODevice::Text))
{
return;
}
QTextStream stream(&xjFile);
QString xjLine = "\0";
for (int i = 0; i < mxjMap.size(); i++)
{
xjLine = mxjMap[i];
stream << xjLine + "\r\n";
}
stream.flush();
xjFile.close();
}