Browse Source

working on dbSetup class to initalize database on first run

fiffty-50 4 năm trước cách đây
mục cha
commit
9957998c99
2 tập tin đã thay đổi với 41 bổ sung21 xóa
  1. 39 19
      dbsetup.cpp
  2. 2 2
      dbsetup.h

+ 39 - 19
dbsetup.cpp

@@ -260,27 +260,41 @@ void dbSetup::createViews()
     }
 }
 
-void dbSetup::csvtest()
+/*!
+ * \brief dbSetup::importCSV reads from a CSV file
+ * \param filename - QString to csv file.
+ * \return QVector<QStringList> of the CSV data, where each QStringList is one column of the input file
+ */
+QVector<QStringList> dbSetup::importCSV(QString filename)
 {
-    QStringList firstColumn;
-
-
-    QFile f1("test.csv");
-    f1.open(QIODevice::ReadOnly);
-    QTextStream s1(&f1);
-   // qDebug() << "Stream: " << s1.readAll();
-    while (!s1.atEnd()){
-      QString s=s1.readLine(); // reads line from file
-      qDebug() << s;
-      //firstColumn.append(s.split(",").first()); // appends first column to list, ',' is separator
-      firstColumn.append(s.split(",")[1]);//second Column
+    QFile csvfile(filename);
+    csvfile.open(QIODevice::ReadOnly);
+    QTextStream stream(&csvfile);
+
+    QVector<QStringList> values;
+
+    //Read CSV headers and create QStringLists accordingly
+    QString line = stream.readLine();
+    auto items = line.split(",");
+    for (int i = 0; i < items.length(); i++) {
+        QStringList list;
+        list.append(items[i]);
+        values.append(list);
+    }
+    //Fill QStringLists with data
+    while (!stream.atEnd()) {
+        QString line = stream.readLine();
+        auto items = line.split(",");
+        for (int i = 0; i < values.length(); i++) {
+            values[i].append(items[i]);
+        }
     }
-    qDebug() << "First Column: " << firstColumn;
+    qDebug() << "Values: " << values;
+    return values;
 
-    f1.close();
 }
 
-QVector<QStringList> dbSetup::importAirportsFromCSV()
+/*QVector<QStringList> dbSetup::importAirportsFromCSV()
 {
     QStringList icao;
     QStringList iata;
@@ -294,7 +308,7 @@ QVector<QStringList> dbSetup::importAirportsFromCSV()
 
 
 
-    QFile input("airports.csv");
+    QFile input("test.csv");
     input.open(QIODevice::ReadOnly);
     QTextStream inputStream(&input);
 
@@ -327,12 +341,18 @@ QVector<QStringList> dbSetup::importAirportsFromCSV()
     {
         airportData[i].removeFirst();
     }
-    //qDebug() << "Airport Data: " << airportData;
+    qDebug() << "Airport Data: " << airportData;
     return airportData;
-}
+}*/
 
 void dbSetup::commitAirportData(QVector<QStringList> airportData)
 {
+    //remove header names
+    for(int i=0; i < airportData.length(); i++)
+    {
+        airportData[i].removeFirst();
+    }
+
     QSqlQuery query;
     qDebug() << "Updating Airport Database...";
 

+ 2 - 2
dbsetup.h

@@ -40,9 +40,9 @@ public:
 
     static void createViews();
 
-    static void csvtest();
+    static QVector<QStringList> importCSV(QString);
 
-    static QVector<QStringList> importAirportsFromCSV();
+    //static QVector<QStringList> importAirportsFromCSV();
 
     static void commitAirportData(QVector<QStringList>);
 };