• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

qt c++_对文本文件读写并进行分割参数存储处理

武飞扬头像
linghy
帮助2

让用户可以选择打开一个文件

最简单的可调用头文件QFileDialog下的静态函数

QFileDialog::getOpenFileName()及相应的控件按钮,代码如下

QString path = QFileDialog::getOpenFileName(this,"打开文件","../",tr("(*.txt *.TXT)") /*txt过滤器*/);
ui.lineEdit->setText(path);//lineEdit显示路径
	int t = 0;
	//读取文件内容,放入textEdit
	QFile file(path);

QFileDialog::getOpenFileName()静态函数需要传递三个字符串类型参数,依次是:

  • 对话框标题,即显示的文字描述
  • 初始化目录,即按钮响应时弹出的默认目录路径,这里涉及到相对路径绝对路径

绝对路径简单的说就是完整描述文件位置的路径,比如文件在盘的搜索路径

相对路径即是本地相对于目标的位置,我们使用**“../”来表示上一级目录,“../../”表示上上级的目录,**一般来说在开发中,使用以相对路径为主

  • 文件过滤器,通过设置选择不同后缀的文件来进行限制选择,可以设置多组文件,每组文件之间用两个分号隔开,同一组内不同后缀之间用空格隔开,例如:
  • QString f = “文本文件(.txt)”;;图片文件*(**.jpg *.png);;

文件的打开方式及读取

file.open(QIODevice::ReadOnly);//打开方式,只读
/*
QIODevice::ReadOnly   //以只读的方式打开(文件不存在出错)
QIODevice::WriteOnly  //以只写的方式打开,打开时文件内原内容清空(文件不存在则创建)
QIODevice::ReadWrite  //以读写的方式打开文件
QIODevice::Append     //已追加的方式打开文件,新写入文件的数据添加到文件尾部
QIODevice::Truncate   //以重写的方式打开文件,文件打开时原有内容全部清空
QIODevice::Text       //以文本的方式打开文件。读取时,将' '翻译为换行符;写入时,将行结束符转换成本地格式
*/
int t=0;
while (!file.atEnd())//判断文件是否读完
	{
		QString array = file.readLine();
        //ui.textEdit->append(array);
    t=1;
}
if (!t) {
		QMessageBox::information(this, tr("读取失败"), tr("读取拉伸体字段失败"));
	}//异常提示框

	file.close();

全部读取 file.readAll()

按行读 file.readLine(),atend()判断是否读完

对文本字段的分割

#include<QStringList>
QStringList array_cut = array.split(",");//以逗号分割

.split()函数切割,处理后的字段以列表形式存储,例如“fcnaiwdj,dasda,daw,a,awdc”,以逗号分割后为(“fcnaiwdj” , “dasda” “daw” “a” ”awdc”)

以.at()函数访问

ret.in_point = array_cut.at(0);//.at()列表访问
ret.in_ori = array_cut.at(3).toDouble();//qstring转double
/*
//QString 转 int,使用 toInt() 函数
//QString 转 double,使用 toDouble() 函数
QString qstr("100");
int num = qstr.toInt();

//int、double 转 QString,使用 QString::number() 函数
int num = 100;
QString qstr = QString::number(int);
double ret.st_ori_x = 1.0
ui.textEdit->append(QString::number(ret.st_ori_x, 'ori', 0);//最后一个参表示保留几位小数
*/

保存新改写文件内容(原文件覆盖)

QString v = ui.lineEdit->text();//获取当前打开的文件路径
	QFile file(v);
	file.setFileName(v);
	file.open(QIODevice::WriteOnly);//打开模式为只写

	QString str = ui.textEdit->toPlainText();//获取文本框内容
	file.write(str.toUtf8());//写入

	QMessageBox::information(this, tr("保存文件"), tr("文件保存成功!"));//保存操作提示框

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkhbgg
系列文章
更多 icon
同类精品
更多 icon
继续加载