QT 文件dlg打开文本文件并从多列数据中提取其中两列并保存到新文件中
时间: 2023-06-08 13:06:12 浏览: 80
利用QT创建文件并保存
感谢您的提问,我将尽力回答。根据您提供的信息,您需要一个程序来打开一个文本文件并从多列数据中提取其中两列并保存到新文件中。我假设您是在使用Qt框架开发应用程序。
下面是一个示例代码,可以帮助您实现此功能:
```cpp
#include <QFileDialog>
#include <QFile>
#include <QTextStream>
void extractData()
{
// 打开一个文本文件
QString fileName = QFileDialog::getOpenFileName(nullptr, tr("Select a text file"), "", tr("Text Files (*.txt)"));
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
// 创建一个新的文本文件
QString newFileName = QFileDialog::getSaveFileName(nullptr, tr("Save the extracted data"), "", tr("Text Files (*.txt)"));
QFile newFile(newFileName);
if (!newFile.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream out(&newFile);
// 从多列数据中提取其中两列
while (!file.atEnd())
{
QString line = QString(file.readLine());
QStringList columns = line.split(QRegExp("\\s+"), QString::SkipEmptyParts);
if (columns.size() < 2)
continue;
QString firstColumn = columns[0];
QString secondColumn = columns[1];
// 将提取的两列数据保存到新文件中
out << firstColumn << " " << secondColumn << "\n";
}
file.close();
newFile.close();
}
```
这个函数会弹出一个对话框,供用户选择要打开的文本文件和保存提取数据后的新文件。它将从文件中逐行读取数据并使用正则表达式分割行中的多列数据。然后,它将跳过不足两列的行,并将提取的两列数据写入新文件。
希望这可以帮助您解决问题。如果您还有任何问题,请随时追问。
阅读全文