예제 #1
0
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;
}
예제 #2
0
  //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();
    }
}
예제 #3
0
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;
  }
}