qt c++_对文本文件读写并进行分割参数存储处理
让用户可以选择打开一个文件
最简单的可调用头文件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
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01