QT读取文件

这篇博客详细介绍了如何使用QT库在C++中进行文件读取操作,包括文件样式1、文件2读取及文件3的处理,最后强调了在操作完成后正确关闭文件的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 从原始文件导入测线数据
CORE_EXPORT
bool gImportSurveyLines(const QString& filename, QVector<GSurveyLine*>& surveyLines);

bool gImportSurveyLines(const QString& filename, QVector<GSurveyLine*>& surveyLines)
{
	//创建文件对象
	QFile file(filename);

	//判断文件是否能被打开,打开方式为只读,如不是,则退出
	if (!file.open(QFile::ReadOnly)) return false;
	
	//创建文件流对象
	QTextStream stream(&file);

	//文件里的线号
	QString lineNum = "";

	//测线
	GSurveyLine* pSurveyLine = NULL;
	
	//测点
	GSurveyPoint* pSurveyPoint = NULL;
	int ptNum = 0;

	//有名字的列,直接固定死
	const int FIXED_COL_NUM = 13;

	//开始读文件
	while (!stream.atEnd())
	{
		//读取每一行,去除首位空格
		QString line = stream.readLine().trimmed();

		//特殊标记的提示信息,直接跳过不读
		if (line.isEmpty() || line.startsWith("#")) continue;

		//将每一行的信息按字符串进行分割,QRegExp("\\s+")以空格作为拆分!SkipEmptyParts跳过空格
		QStringList strs = line.split(QRegExp("\\s+"), QString::SkipEmptyParts);
		
		//线号,同一个线号下的数据,全部存起来,直到出if循环,ptNum++即线号变了
		if (strs[0] != lineNum)
		{
			lineNum = strs[0];
			pSurveyLine = new GSurveyLine(lineNum);
			surveyLines.append(pSurveyLine);
			ptNum = 1;
		}

		pSurveyPoint = new GSurveyPoint();
		pSurveyLine->getSurveyPoints() << pSurveyPoint;

		pSurveyPoint->mPointNum = ptNum++;
		pSurveyPoint->mInvalidMask = 1;
		pSurveyPoint->mDateTime &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值