主要的效果就是类似于商品的种类 价格 等信息的txt保存,然后可以读取这个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的所有数据
QFile f("D:\\qtManager.txt");
if(!f.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << ("打开文件失败");
}
QTextStream txtOutput(&f);
QString str = "123";
txtOutput << str << endl;
f.close();
QFile f("D:\\qtManager.txt");
if(!f.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug() << ("打开文件失败");
}
QTextStream txtInput(&f);
QString lineStr;
while(!txtInput.atEnd())
{
lineStr = txtInput.readLine();
qDebug() << (lineStr);
}
f.close();