QT sqlite3数据库读取、容器操作、文件读写——学习笔记。
来源:互联网 发布:杭州哪里可以学编程 编辑:程序博客网 时间:2024/05/18 18:20
直接上代码
#include "dbpoi.h"#include <QtGui/QApplication>#include <QtCore/QCoreApplication>#include <QSqlDatabase>#include <QSqlQuery>#include <QSqlError>#include <QSqlDriver>#include <qDebug>#include <QString>#include <QVector>#include <QList>#include <QFile>#include <QSet>int main(int argc, char *argv[]){QApplication a(argc, argv);//dbPOI w; //QCoreApplication a(argc, argv); // QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));QVector<int> tempFromNode;QVector<int> tempToNode;QSet <int> tempSort; QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("NEW_AR_POI.sqlite"); // 数据库名与路径, 此时是放在同目录下// db.setDatabaseName("offset.db"); // 数据库名与路径, 此时是放在同目录下 bool ok = db.open(); // 连接数据库, 然后就可以使用了.if(ok){QSqlQuery query; if (query.exec("select * from LinkNode_Table_bark ")) //尝试列出 表的所有记录{ //本次查询成功int numRows = 0; //询问数据库驱动,是否驱动含有某种特性 if (db.driver()->hasFeature(QSqlDriver::QuerySize)){numRows = query.size(); //如果支持结果影响的行数,那么直接记录下来}else{query.last(); //否则定位到结果最后,qt 文档说,这个方法非常慢numRows = query.at() + 1;query.seek(-1);}}//尝试列出 表的所有记录while (query.next()) {int num =0;/*QString FNode_ID = query.value(4).toString();QString TNode_ID = query.value(5).toString();*/int FNode_ID = query.value(3).toInt();int TNode_ID = query.value(4).toInt();tempFromNode.append(FNode_ID);tempToNode.append(TNode_ID);}}else{ //qDebug() << "cannot open database.";printf( "cannot open database.");}QFile file( "file.txt" );if ( file.open(QIODevice::WriteOnly | QIODevice::Text)) {QTextStream stream( &file ); for ( int index =0; index < tempFromNode.size(); index ++ ){stream << tempFromNode.at(index);tempSort.insert(tempFromNode.at(index));tempSort.insert(tempToNode.at(index));stream<<"\t"<< tempToNode.at(index) <<endl ;}file.close();}//qSort(tempSort.begin(),tempSort.end());//tempSort.unite(tempSort);QFile filetTempSort( "tempSort.txt" );if ( filetTempSort.open(QIODevice::WriteOnly | QIODevice::Text)) {QTextStream stream( &filetTempSort ); foreach (const int &value, tempSort) { stream << value<<endl; filetTempSort.close();}}QFile fileTp( "TP.txt" );if ( fileTp.open(QIODevice::WriteOnly | QIODevice::Text)) {QTextStream stream( &fileTp); foreach (const int &value, tempSort) { stream << value; for ( int index =0; index < tempFromNode.size(); index ++ ){ if (tempFromNode.at(index) == value) stream << "\t"<<tempToNode.at(index); }for ( int index =0; index < tempFromNode.size(); index ++ ){if (tempToNode.at(index) == value) stream << "\t"<<tempFromNode.at(index); } stream << endl;} fileTp.close();}//w.show();//return a.exec();return 0;}
- QT sqlite3数据库读取、容器操作、文件读写——学习笔记。
- QT sqlite3数据库读取、容器操作、文件读写——学习笔记
- Python学习笔记21:数据库操作(sqlite3)
- Java学习笔记(三)——文件读写操作
- Qt 文件操作 & 容器
- QT快速读取显示SQLite3数据库数据
- Qt学习笔记-文件操作
- QT 文件读写操作
- Qt 文件读写操作
- QT 文件读写操作
- QT 文件读写操作
- QT 文件读写操作
- Qt 文件读写操作
- Qt文件读写操作
- Qt 文件读写操作
- Qt 读写文件操作
- nginx 源码学习笔记(十三)——文件读写和配置文件读取
- nginx 源码学习笔记——文件读写和配置文件读取
- 使用USB外置声卡出现爆音的解决方法
- EBS中Java并发程序笔记(2)
- Java反射
- 自定义TAB放置界面底部
- 云计算的优势和劣势
- QT sqlite3数据库读取、容器操作、文件读写——学习笔记。
- AJAX
- JVM参数设置、分析
- 进程fork
- 销售--毛利
- 设计模式-动态代理
- metalink 文章收集
- Oracle中sqlplus命令限制(使用自带脚本pupbld.sql)
- EXCEL IF AND OR