QT sqlite3数据库读取、容器操作、文件读写——学习笔记
来源:互联网 发布:全球十大金融公司知乎 编辑:程序博客网 时间:2024/06/06 20:30
直接上代码
- #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;
- }
http://blog.csdn.net/swqqcs/article/details/7677781
阅读全文
0 0
- QT sqlite3数据库读取、容器操作、文件读写——学习笔记。
- QT sqlite3数据库读取、容器操作、文件读写——学习笔记
- Python学习笔记21:数据库操作(sqlite3)
- Java学习笔记(三)——文件读写操作
- Qt 文件操作 & 容器
- QT快速读取显示SQLite3数据库数据
- Qt学习笔记-文件操作
- QT 文件读写操作
- Qt 文件读写操作
- QT 文件读写操作
- QT 文件读写操作
- QT 文件读写操作
- Qt 文件读写操作
- Qt文件读写操作
- Qt 文件读写操作
- Qt 读写文件操作
- nginx 源码学习笔记(十三)——文件读写和配置文件读取
- nginx 源码学习笔记——文件读写和配置文件读取
- 续读Method类
- 不引入变量交换两个变量的数值的核心代码
- rabbitmq 安装方式2
- 这是一个小小的打地鼠游戏,里面有详细的步骤(在参考了一些资料的情况下,写的代码)
- Linux下配置Android Studio与Eclipse
- QT sqlite3数据库读取、容器操作、文件读写——学习笔记
- Lua——table(表)
- 六、VIM 安装、使用
- 问题 C: 神奇的口袋
- 使用art-template遇到的坑
- 安装Python-qt5问题
- apriori推荐算法 ★★★★★
- Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作
- 层次聚类的python实现