文件讀寫和保存
1.獲取文件路徑及名字
#include <QFileDialog>
void MainWindow::on_pushButton_clicked()
{
QString dialog[3],name[4];
QStringList split[3];
QFileDialog add_file_dialog;
add_file_dialog.setFileMode(QFileDialog::ExistingFiles);
QStringList filename=add_file_dialog.getOpenFileNames(
this, tr("open txt"),".", tr("select(*.txt)"));
int i=0;
for(auto temp:filename){
dialog[i]=temp;
split[i] = dialog[i].split("/");
name[i] = split[i].last();
i++;
}
name[3] = QString("%1,%2,%3").arg(name[0]).arg(name[1]).arg(name[2]);
ui->label->setText(name[3]);
}
2.生成唯一的文件名
QString saveName;//保存名字
QString savePath;
QString filePath;//存儲(chǔ)保存路徑
QDateTime time = QDateTime::currentDateTime();//獲取系統(tǒng)現(xiàn)在的時(shí)間
QString str = time.toString("mm:ss-yyyyMMdd"); //設(shè)置顯示格式
filePath = QFileDialog::getExistingDirectory(this,"");//獲取文件夾路徑
if(!filePath.isEmpty())
{
saveName="savename";
savePath=QString("%1/%2-%3.txt").arg(filePath).arg(saveName).arg(str);
const std::string save = savePath.toStdString();
//save api or write api
}
3.寫入
.csv文件
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ofstream oFile;
oFile.open("test.csv",ios::out|ios::trunc);
oFile<<"屬性1"<<","<<"屬性2"<<","<<"結(jié)果1"<<","<<"結(jié)果2"<<endl;
oFile<<"010101"<<","<<"1 2 3"<<","<<"32.2 112.3;23.12 23.22;23.14 23.45"<<","<<"1"<<endl;
oFile.close();
}
.xls文件
QFile data("d:/test.xls");
if(!data.open(QFile::WriteOnly | QFile::Truncate))
{
return false;
}
QTextStream out(&data);
QString tt1=QString::fromLocal8Bit("外國(guó)");
QString tt2=QString::fromLocal8Bit("人文關(guān)懷");
out<<tt1<<"\t"<<tt2<<"\t"<<"\n"; //每個(gè)單元格以\t分隔,每行以\n分隔
out<<"25\t"<<"26\t";
data.close();