C++/Qt:TXT文件读写
2023-09-14 09:07:11 时间
分享给有需要的人,代码质量勿喷。
//一、读取内容显示
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();
}
相关文章
- 什么是linux Qt[通俗易懂]
- qlineedit 不可编辑_qt中获取lineedit文本内容
- C/C++ Qt StandardItemModel 数据模型应用
- C/C++ Qt TreeWidget 单层树形组件应用
- C/C++ Qt 标准Dialog对话框组件应用
- C/C++ Qt TreeWidget 单层树形组件应用
- C/C++ Qt ListWidget 增加右键菜单
- C/C++ Qt MdiArea 多窗体组件应用
- C/C++ Qt 数据库与Chart实现历史数据展示
- QT入门基础(一)
- Qt官方示例-俄罗斯方块
- Linux串口应用开发实践——Qt篇(linux串口qt)
- 基于Linux的Qt程序开发实践(linux与qt程序设计)
- 在Linux系统下利用Qt程序设计实现的精彩之旅(linux与qt程序设计)
- Qt 静态编译在 Linux 的实践(qt静态编译linux)
- Linux QT开发环境配置指南(qtlinux配置)
- 集成开发Linux与Qt集成开发:实现无缝交互(linux与qt)
- QT and MySQL: A Comprehensive Tutorial for Building Database Connections(qt连接mysql教程)
- Qt在Linux操作系统中的运行和应用(qt运行linux)
- 轻松实现QT直连Microsoft SQL Server(qt直连mssql)
- 使用Linux和Qt搭建强大的应用环境(linux qt 环境)