学习目标:
使用QFile读取文件
学习内容:
- 打开文件
- 按行读取
- 解析文件
- 存储
代码:
void CLoadWellTopDialog::openFile()
{
getJumpSteps();//获取跳行的步数
getLists();//获取显示的列
m_path=QFileDialog::getOpenFileName(this, "open", "../", "TXT(*.txt)");
if (false==m_path.isEmpty())
{
m_file.setFileName(m_path);
bool isOk=m_file.open(QIODevice::ReadOnly);
if (true == isOk)
{
ui.fileLineEdit->setText(m_path);
QStandardItemModel *model=new QStandardItemModel(this);//使用model
int row=0;
int col=0;
while (!m_file.atEnd())
{
allLines++;
QString tempLineStr=m_file.readLine();
QStringList preList=tempLineStr.split(QRegExp("\\s+"));//将获取的字符串转换为QStringList类型
getDataByLists(preList);//处理得到的字符串为指定列
if (0 == m_jumpSteps)
{
setDataToVector(preList);//将数据装入到Qvector中
}
else
{
m_jumpSteps--;
}
for (int i=0;i<3;i++)
{
QString tempStr=preList.front();
preList.pop_front();
model->setItem(row, col, new QStandardItem(tempStr));
col++;
if (3==col)
{
col=0;
row++;
}
}
}
ui.tableView->setModel(model);
}
}
}