Qt读写文件三种方式(INI,XML,txt)

一.INI文件-用"/"分两级

一.INI文件(用"/"分两级)。
1.1 ini文件

[General]
LastImgPath2=

[Section]
CurrentStartX=D:/CYF
CurrentStartY=2
CurrentStartZ=9

[Capture]
CurrentStartX=10
CurrentStartY=2
CurrentStartZ=9

二.XML文件-数组用","隔开

2.1 疑问点:调用子节点需调用两次firstChild。
2.2 xml文件

<?xml version='1.0' encoding='UTF-8'?>
<!--离开是为了更好的归来-->
<?xml-stylesheet type="text/css" href="style.css"?>
<library Version="2.1">
    <item type="QString" name="Section/CurrentStartX">
        <value>D:/加油</value>
    </item>
    <item type="QString" name="appPath">
        <value>D:/DXF</value>
    </item>
    <item type="bool" name="iReferHorizontal">
        <value>true</value>
    </item>
    <item type="bool" name="iReferVertical">
        <value>false</value>
    </item>
    <item type="int" name="iLength_ROI">
        <value>3</value>
    </item>
    <item type="int" name="iWidth_ROI">
        <value>5</value>
    </item>
    <Array type="int" name="A">
        <value>3,1,2</value>
    </Array>
    <Array type="QString" name="B">
        <value>N,B,A</value>
    </Array>
</library>

三.TXT文件-数组用" "隔开

3.1 txt文件

1 40 53 42 56
1 40 53 42 56
1 42 53 44 54
8 44 53 44 50
10 42 50 46 51
31 42 50 44 52
105 42 50 44 54

3.2 读txt

//第一步,通过txt文件获取每层范围,并记录最大范围
	QString sPath_txt=m_sPathIn+"/roi.txt";//D:/Code/QListView/debug/COM_3/鼠脑.txt
	QFile fileTxt(sPath_txt);//D:/Code/QListView/debug/COM_3/模板/鼠脑.txt
	if(!fileTxt.open(QIODevice::ReadOnly | QIODevice::Text))
	{
		//emit MessageEmit(QString("无法打开roi.txt文件"));
		return;
	}

	QTextStream txtInput(&fileTxt);//D:/Code/QListView/debug/COM_3/模板/鼠脑.txt
	QString lineStr;
	bool bHaveValue = false;
	//int nXmin,nXmax,nYmin,nYmax;
	while(!txtInput.atEnd())
	{
		lineStr = txtInput.readLine();
		QStringList sList=lineStr.split(' ');//按空格分隔
		if(sList.size()<5) continue;
		int nVal = sList[0].toInt();
		int nLayer = (nVal-1)*m_nNum + 1;
		int nX1=sList[1].toInt(),nX2=sList[2].toInt();
		int nY1=sList[3].toInt(),nY2=sList[4].toInt();
		QString sText = QString::number(nX1)+','+QString::number(nX2)+','+QString::number(nY1)+','+QString::number(nY2);
		m_MapRange1[nLayer] = sText;

		if(!bHaveValue){
			m_nXmin=nX1,m_nXmax=nX2,m_nYmin=nY1,m_nYmax=nY1;
			bHaveValue = true;
		}

		if(nX1<m_nXmin) m_nXmin=nX1;
		if(nX2>m_nXmax) m_nXmax=nX2;
		if(nY1<m_nYmin) m_nYmin=nY1;
		if(nY2>m_nYmax) m_nYmax=nY2;
	}
	fileTxt.close();

3.3 写txt

QFile file("相机温度监测.txt");
    if(file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))
    {
        QTextStream txtOutput(&file);
        QString sDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");//日期时间                //事件日志
        txtOutput<<sDateTime<<'\t'<<sTemperature1<<'\t'<<sTemperature2<<endl;//<<'\t'
        file.close();
    }
    return true;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值