本文主要是介绍将sqlite3生成的数据库文件转换成.txt格式文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码奉上:
#include <fstream>
using namespace std;
static int titleflag;
int call_back_log(void *para, int f_num, char **f_value, char **f_name)
{const char *desfile = (const char *)para;int i=-1;int j=-1;char tmp[256] = {0};string tmpstr;ofstream ofs;if(!titleflag) ofs.open(desfile, ios::out | ios::trunc);else ofs.open(desfile, ios::out | ios::app);if(!ofs.is_open()){ cout<<"open log.txt error"<<endl; }//show tableif(!titleflag){for(j = 0; j<f_num; j++){tmpstr += f_name[j];tmpstr += " | ";titleflag = 1;}ofs << tmpstr << endl;}//show resulttmpstr.clear();for(i=0; i<f_num; i++){tmpstr += f_value[i] ;tmpstr += " ";}ofs << tmpstr << endl;ofs.close();return 0;}
void operator_file(const char *filename, const char *desfilename, const char *table)
{sqlite3 *db;char *zErrMsg = 0;int rc;char sql[256] = {0};sprintf(sql, "select * from '%s' ;", table);rc = sqlite3_open(filename, &db);if( rc ){// LOG_ERROR("Can't open database: %s\n", sqlite3_errmsg(db));perror("open database error!");exit(0);}rc = sqlite3_exec(db, sql, call_back_log, (void *)desfilename, &zErrMsg);if( rc != SQLITE_OK ){perror("find database error!");sqlite3_free(zErrMsg);}sqlite3_close(db);titleflag = 0;}int transFileToTxt(const char *filename, const char *desfilename)
{int status = 0;const char *tablename=(const char *)"logwork";operator_file(filename, desfilename, tablename);return status;}int main()
{const char *filename = "./etc/log.db" ;const char *desfilename = "./etc/log.txt" ;int status = transFileToTxt(filename, desfilename); return 0;
}
这篇关于将sqlite3生成的数据库文件转换成.txt格式文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!