【QT】QT对文件进行读写等几个操作

QT对文件进行读写等几个操作

目录

1.添加头文件

2.添加.h文件代码

3.添加.cpp文件代码

读取文件行数

读取文本,循环读取

写文件操作

读某行文本

读取某行分割文本


1.添加头文件

#include <QStringList>
#include <QFile>
#include <QFileInfo>

2.添加.h文件代码

public:
    int read_configure_cout(QString configpath,QString filename);//读取文件行数
    QString read_file(QString configpath,QString filename,int linecout); //读取文本
    void writefile(QString configpath,QString filename,QString data); //写文本操作
    QString read_configstr(QString configpath,QString filename,int linecout); //读某行文本
    QStringList read_configstr3(QString configpath, QString filename, int linecout);//读某行分割文本

3.添加.cpp文件代码

读取文件行数

int testitems::read_configure_cout(QString configpath, QString filename)
{
    QString path=configpath+filename;
    QFile file( path);
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
//        qDebug() << "Can't open the file!" << endl;
        return 0;
    }
    int i=0;
//    str.clear();

    while(!file.atEnd()){

        QByteArray line = file.readLine();
        str3=(QString)line;
        i++;
    }

    file.close();
    return i;
}

读取文本,循环读取

QString testitems::read_file(QString configpath, QString filename, int linecout)
{
     QString path=configpath+filename;
     QString str2;
     QFile file( path);
     if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
         return "configstr.open error";
     }
     int i=1;

     while(!file.atEnd()){

         QByteArray line = file.readLine();
         str2=(QString)line;


         if(i==linecout){
             return str2;
             break;
         }
         i++;


     }

      file.close();
}

写文件操作

void testitems::writefile(QString configpath, QString filename,QString data)
{

    QString filepath=configpath+filename;
    if(filepath.isEmpty()==false){
        QFile file;
        file.setFileName(filepath);
        bool b= file.open(QIODevice::WriteOnly | QIODevice::Text);
        if(b==true){
//            QString str="yes";
            file.write(data.toStdString().data());

        }else{
            QString str="no";
            file.write(str.toStdString().data());
        }
        file.close();
    }


}

读某行文本

QString read_configstr(QString configpath,QString filename,int linecout){

     QString path=configpath+filename;
     QString str2;
     QFile file( path);
     if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
         return "configstr.open error";
     }
     int i=1;

     while(!file.atEnd()){

         QByteArray line = file.readLine();
         str2=(QString)line;


         if(i==linecout){
             return str2;
             break;
         }
         i++;


     }

      file.close();

}

读取某行分割文本

//读取某行分割文本
QStringList testitems::read_configstr3(QString configpath, QString filename, int linecout)
{
    QString path=configpath+filename;
     QString str2;
     QFile file( path);
     if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
//         return "configstr.open error";
     }
     int i=1;
    QStringList list;
     while(!file.atEnd()){

         QByteArray line = file.readLine();
         str=(QString)line;
         list=str.split(":");  //分割字符为:
         if(i==linecout){
             return list;
             break;
         }
         i++;


     }
发布了139 篇原创文章 · 获赞 24 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/rong11417/article/details/103988082
今日推荐