bool FileService::saveCsvFile(QString filename,QJsonObject setListData) { QJsonObject::iterator i ; QStringList::iterator j; QList<int>::iterator k; QString duration,csvFilename; QFile csvfile(filename+".csv"); QList<int> orderedlist; QStringList unorderedlist; bool rc; if (!csvfile.open(QIODevice::WriteOnly | QIODevice::Text)) return false; QFileInfo fn(csvfile) ; csvFilename=fn.fileName() ; rc=updateHashVersion(csvFilename) ; QTextStream out(&csvfile); // Sorts Json data on numerical order (alpha order by default) unorderedlist = setListData.keys() ; for(j=unorderedlist.begin();j != unorderedlist.end();j++){ orderedlist.append((*j).toInt()) ; } qSort(orderedlist.begin(), orderedlist.end()); out << "order;title;capo;comments;audioFile;author;year;lyricsFile;chordsFile;duration\n" ; for(k=orderedlist.begin();k!=orderedlist.end();k++){ out << QString::number((*k)+1) << ";" ; out << setListData.value(QString::number(*k)).toObject().value("title").toString() << ";" ; out << setListData.value(QString::number(*k)).toObject().value("capo").toString() << ";" ; out << setListData.value(QString::number(*k)).toObject().value("comments").toString() << ";" ; out << setListData.value(QString::number(*k)).toObject().value("audioFile").toString().replace(documents+"/playlists/audio/","") << ";" ; out << setListData.value(QString::number(*k)).toObject().value("author").toString() << ";" ; out << setListData.value(QString::number(*k)).toObject().value("year").toString() << ";" ; out << setListData.value(QString::number(*k)).toObject().value("lyricsFile").toString().replace(documents+"/playlists/lyrics/","") << ";" ; out << setListData.value(QString::number(*k)).toObject().value("chordsFile").toString().replace(documents+"/playlists/chords/","") << ";" ; duration = QString::number(setListData.value(QString::number(*k)).toObject().value("duration").toInt()/60000); duration = duration + ":" + QString::number(setListData.value(QString::number(*k)).toObject().value("duration").toInt()%60000/1000); out << duration << "\n"; } csvfile.close(); return true; }
//Ausleitung als csv-Datei void MainWindow::on_pushButton_clicked() { QSqlQueryModel *model = (QSqlQueryModel*)ui->listView->model(); QSqlRecord record = model->record(ui->listView->currentIndex().row()); QSqlField field_ID = record.field("ID"); DBank con; con.con_open(); QSqlQuery query(con.myDB); query.prepare("SELECT t.Vorname as Vorname, t.Nachname as Nachname, time(t.Endzeit-e.Startzeit, \"unixepoch\") from TEILNEHMER as t JOIN EVENT as e ON e.ID == t.EVENT_ID where e.ID = '"+field_ID.value().toString()+"' ORDER BY t.Endzeit ASC"); if(query.exec()) { QSqlQueryModel *model=new QSqlQueryModel(); model->setQuery(query); QString DB_Inhalt; int rows=model->rowCount(); int columns=model->columnCount(); for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { DB_Inhalt += model->data(model->index(i,j)).toString(); DB_Inhalt += "; "; } DB_Inhalt += "\n"; } QString filename = QFileDialog::getSaveFileName(this,"Speichern unter","C://","All files (*.*);;ExcelFile(*.csv)"); QFile csvfile(filename); if(csvfile.open(QIODevice::WriteOnly|QIODevice::Truncate)) { QTextStream out(&csvfile); out<<DB_Inhalt; } csvfile.close(); } }
void csvfiling::ReadCSVtoMatAlt(const std::string &filename, const std::string &seperator, cv::Mat &datamat) { int ncols,nrows; CSVSize<float>(filename,seperator,ncols,nrows); datamat=cv::Mat(nrows,ncols,CV_32FC1,cv::Scalar(0.)); std::ifstream csvfile(filename.c_str()); std::string line; for (int j=0;j<nrows;j++) { float *rawdata=datamat.ptr<float>(j); std::getline(csvfile,line); if (seperator!=" ") csvfiling::replaceAll(line,seperator," "); std::stringstream ss(line); // for (int i=0;i<ncols && ss>>*rawdata; i++,rawdata++); for (int i=0;i<ncols && ss;i++) { ss>>rawdata[i]; std::cout <<rawdata[i]<<","; } std::cout <<std::endl; } }