QT C 一些簡單的QT檔案讀寫類

2021-10-04 03:01:22 字數 3029 閱讀 3379

txt純文字讀寫,按行追加,按日期自增

#ifndef textwriter_h

#define textwriter_h

;#endif // textwriter_h

#include "textwriter.h"

textwriter::textwriter(qstring basedir,qstring tag,qstring ext,qobject *parent) : qobject(parent)

qstring textwriter::getbasedir()

void textwriter::setbasedir(qstring basedir)

else

}void textwriter::write(qstring msg)

_mutex.unlock();

}}

sqlite資料庫讀寫,可實現介面,固定讀寫內容,用表物件呼叫介面,呼叫時不必頻繁生成sql命令.檔案按日期自增;

分為三個部分:檔案操作類dbfile,表介面類dbtableinte***ce,資料表物件管理類dbmanager

#ifndef dbfile_h

#define dbfile_h

#include #include #include #include #include #include #include class dbfile : public qobject

;#endif // dbfile_h

#include "dbfile.h"

qobject(parent)

qsqlquery dbfile::getqsqlquery()

void dbfile::setdbdir(qstring dir)

}dbdir = _dir.absolutepath();

}catch(_exception)

return ;

}qstring dbfile::getdbdir()

void dbfile::init()

qstring dbname = qstring("%1/%2_v%3.db").arg(dbdir).arg(tag).arg(db_version);

if(database.databasename() != dbname)

else

database.setdatabasename(dbname);

if(!database.open())

emit onloaddb(dbname);

if(!dbfile_exist)

}}void dbfile::writedb(qstring sql_cmd)

}sqlmutex.unlock();

}}void dbfile::writedb1(qsqlquery sql_query)};}

}sqlmutex.unlock();

}count = tabindex;

return ;

}int dbfile::tablerowcount(qstring table)}}

sqlmutex.unlock();

}return count;

}qstringlist dbfile::gettablecolumnnames(qstring table)};}

}sqlmutex.unlock();

}return tabcolname;

}void dbfile::readtable(qstring table,

qstringlist &tabcolname,

qlist&tabrowdata,

int &count,

int start_index,

int max_count,qstring orderby,qstring where)

if(where!= "")

if(start_index!=0 || max_count!=-1)

if(sql_query.exec(select));

class dbtableinte***ce : public qobject

;#endif // dbtableinte***ce_h

#include "dbtableinte***ce.h"

dbtableinte***ce::dbtableinte***ce(dbfile* datasource,qstring table,qobject *parent) : qobject(parent)

void dbtableinte***ce::checktableexistsql(qstring)

void dbtableinte***ce::addtestdata(qstring)

}void dbtableinte***ce::add(teststrudbtableinte***ce data)

void dbtableinte***ce::add(qstring tag,qstring value)

int dbtableinte***ce::count()

qstring dbtableinte***ce::gettablename()

void dbtableinte***ce::remove(int rowid)

void dbtableinte***ce::clear()

void dbtableinte***ce::query(qlist&data,int start_index,int query_count);

#endif // dbmanager_h

#include "dbmanager.h"

void dbmanager::init()

dbfile* dbmanager::datasource;

dbtableinte***ce* dbmanager::table1;

dbtableinte***ce* dbmanager::table2;

檔案讀寫的一些坑

r 開啟並唯讀檔案,該檔案必須存在。r 開啟並且可讀可寫檔案,該檔案必須存在。w 開啟並只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。w 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。a 以附加的方式開啟只寫檔案。若檔...

matlab讀,寫檔案函式的一些理解

檔案讀寫函式 fid fopen 指定的路徑 test.dat r dat mat txt 等其他檔案格式 r 開啟檔案,並讀取資料。w 開啟檔案,並寫資料,如果檔案不存在,則系統自動建立乙個檔案。a 開啟我檔案,並在檔案結尾新增資料 r 開啟檔案,可以讀和寫資料,w a wb 為二進位制方式向fi...

Qt 的一些心得

一.背景刷成黑色,前景色設為白色。方法一 paltette方式,經測試,該方法不會影響到其他控制項,推薦使用 qpalette bgpal palette bgpal.setcolor qpalette background,qcolor 0,0 0,255 qpalette background,...