William2023007 2023-06-19 01:10 采纳率: 50%
浏览 32

qt怎么用txt来读取数据和保存数据

主要的效果就是类似于商品的种类 价格 等信息的txt保存,然后可以读取这个txt文件的数据

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-19 04:01
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7432219
    • 你也可以参考下这篇文章:qt读取txt文件并用表格显示
    • 除此之外, 这篇博客: qt txt快速转excel中的  第一步 获取txt的数据 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    •     这个网上比较多,推荐QT 读取txt文件的几种方法

           先获取所有的txt文件的名称:

         QString path1 = QDir::currentPath();
      		QDir dir(path1);
      		QStringList nameFilters;
      		nameFilters << "*.txt" << "*.png";
              //获取名字
      		QStringList files = dir.entryList(nameFilters, QDir::Files | QDir::Readable, QDir::Name);
      		qDebug() << files;

      对每一个txt 读取数据

      for each (QString name in files)
      		{
               //   打开txt文件
      			QString path = path1 + "/" + name;
      			qDebug() << path;
      			QFile f(path);
      			if (!f.open(QIODevice::ReadOnly | QIODevice::Text))
      			{
      				/*	cout << "Open failed." << endl;
      				return -1;*/
      			}
      //读取txt 流
      			QTextStream txtInput(&f);
      
      		/*	QString astr = "";
      			QStringList alldata;*/
      
      			int numK = 0;
      			QList<QVariant> allRowData;
      			while (!txtInput.atEnd())
      			{
      //读取每一行的数据
      				numK++;
      				QString lineStr;
      				QStringList linedata;
      				lineStr = txtInput.readLine();
      			//	astr.append(lineStr);
      //根据空格来分成多个数据
      				linedata = lineStr.split(" ");
      				
      			/*	while (!linedata.isEmpty())
      				{
      					aRowData.append((linedata.front()));
      					linedata.pop_front();
      				}*/
      //将多个数据转为QVariant类型(这个是qt的任意类型)
      				allRowData.append(QVariant(linedata));
      			}

      这样就获取到了txt的所有数据

       

    评论

报告相同问题?

问题事件

  • 创建了问题 6月19日