void DiveLogImportDialog::on_buttonBox_accepted() { if (ui->tabWidget->currentIndex() == 0) { for (int i = 0; i < fileNames.size(); ++i) { parse_csv_file(fileNames[i].toUtf8().data(), ui->CSVTime->value() - 1, ui->CSVDepth->value() - 1, VALUE_IF_CHECKED(CSVTemperature), VALUE_IF_CHECKED(CSVpo2), VALUE_IF_CHECKED(CSVcns), VALUE_IF_CHECKED(CSVstopdepth), ui->CSVSeparator->currentIndex(), specialCSV.contains(ui->knownImports->currentIndex()) ? CSVApps[ui->knownImports->currentIndex()].name.toUtf8().data() : "csv", ui->CSVUnits->currentIndex()); } } else { for (int i = 0; i < fileNames.size(); ++i) { parse_manual_file(fileNames[i].toUtf8().data(), ui->ManualSeparator->currentIndex(), ui->Units->currentIndex(), VALUE_IF_CHECKED(DiveNumber), VALUE_IF_CHECKED(Date), VALUE_IF_CHECKED(Time), VALUE_IF_CHECKED(Duration), VALUE_IF_CHECKED(Location), VALUE_IF_CHECKED(Gps), VALUE_IF_CHECKED(MaxDepth), VALUE_IF_CHECKED(MeanDepth), VALUE_IF_CHECKED(Buddy), VALUE_IF_CHECKED(Notes), VALUE_IF_CHECKED(Weight), VALUE_IF_CHECKED(Tags)); } } process_dives(true, false); MainWindow::instance()->refreshDisplay(); }
void TestParse::testParseCSV() { // some basic file parsing tests // // CSV import should work verbose = 1; QCOMPARE(parse_manual_file(SUBSURFACE_SOURCE "/dives/test41.csv", 0, // tab separator 0, // metric units 1, // mm/dd/yyyy 2, // min:sec 0, 1, 2, 3, -1, -1, 4, 5, // Dive #, date, time, duration, maxdepth, avgdepth -1, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1), 0); // buddy, suit fprintf(stderr, "number of dives %d \n", dive_table.nr); }
void TestParse::testParseCSV() { // some basic file parsing tests // // CSV import should work verbose = 1; char *params[55]; int pnr = 0; params[pnr++] = strdup(strdup("numberField")); params[pnr++] = intdup(0); params[pnr++] = strdup("dateField"); params[pnr++] = intdup(1); params[pnr++] = strdup("timeField"); params[pnr++] = intdup(2); params[pnr++] = strdup("durationField"); params[pnr++] = intdup(3); params[pnr++] = strdup("locationField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("gpsField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("maxDepthField"); params[pnr++] = intdup(4); params[pnr++] = strdup("meanDepthField"); params[pnr++] = intdup(5); params[pnr++] = strdup("divemasterField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("buddyField"); params[pnr++] = intdup(6); params[pnr++] = strdup("suitField"); params[pnr++] = intdup(7); params[pnr++] = strdup("notesField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("weightField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("tagsField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("separatorIndex"); params[pnr++] = intdup(0); params[pnr++] = strdup("units"); params[pnr++] = intdup(0); params[pnr++] = strdup("datefmt"); params[pnr++] = intdup(1); params[pnr++] = strdup("durationfmt"); params[pnr++] = intdup(2); params[pnr++] = strdup("cylindersizeField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("startpressureField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("endpressureField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("o2Field"); params[pnr++] = intdup(-1); params[pnr++] = strdup("heField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("airtempField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("watertempField"); params[pnr++] = intdup(-1); params[pnr++] = NULL; QCOMPARE(parse_manual_file(SUBSURFACE_SOURCE "/dives/test41.csv", params, pnr - 1), 0); fprintf(stderr, "number of dives %d \n", dive_table.nr); }
int TestParse::parseCSV(int units, std::string file) { // some basic file parsing tests // // CSV import should work verbose = 1; char *params[55]; int pnr = 0; params[pnr++] = strdup("numberField"); params[pnr++] = intdup(0); params[pnr++] = strdup("dateField"); params[pnr++] = intdup(1); params[pnr++] = strdup("timeField"); params[pnr++] = intdup(2); params[pnr++] = strdup("durationField"); params[pnr++] = intdup(3); params[pnr++] = strdup("locationField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("gpsField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("maxDepthField"); params[pnr++] = intdup(4); params[pnr++] = strdup("meanDepthField"); params[pnr++] = intdup(5); params[pnr++] = strdup("divemasterField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("buddyField"); params[pnr++] = intdup(6); params[pnr++] = strdup("suitField"); params[pnr++] = intdup(7); params[pnr++] = strdup("notesField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("weightField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("tagsField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("separatorIndex"); params[pnr++] = intdup(0); params[pnr++] = strdup("units"); params[pnr++] = intdup(units); params[pnr++] = strdup("datefmt"); params[pnr++] = intdup(1); params[pnr++] = strdup("durationfmt"); params[pnr++] = intdup(2); params[pnr++] = strdup("cylindersizeField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("startpressureField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("endpressureField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("o2Field"); params[pnr++] = intdup(-1); params[pnr++] = strdup("heField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("airtempField"); params[pnr++] = intdup(-1); params[pnr++] = strdup("watertempField"); params[pnr++] = intdup(-1); params[pnr++] = NULL; return parse_manual_file(file.c_str(), params, pnr - 1); }
int TestParse::parseCSVmanual(int units, std::string file) { verbose = 1; char *params[55]; int pnr = 0; // Numbers are column numbers params[pnr++] = strdup("numberField"); params[pnr++] = intdup(0); params[pnr++] = strdup("dateField"); params[pnr++] = intdup(1); params[pnr++] = strdup("timeField"); params[pnr++] = intdup(2); params[pnr++] = strdup("durationField"); params[pnr++] = intdup(3); params[pnr++] = strdup("maxDepthField"); params[pnr++] = intdup(4); params[pnr++] = strdup("meanDepthField"); params[pnr++] = intdup(5); params[pnr++] = strdup("airtempField"); params[pnr++] = intdup(6); params[pnr++] = strdup("watertempField"); params[pnr++] = intdup(7); params[pnr++] = strdup("cylindersizeField"); params[pnr++] = intdup(8); params[pnr++] = strdup("startpressureField"); params[pnr++] = intdup(9); params[pnr++] = strdup("endpressureField"); params[pnr++] = intdup(10); params[pnr++] = strdup("o2Field"); params[pnr++] = intdup(11); params[pnr++] = strdup("heField"); params[pnr++] = intdup(12); params[pnr++] = strdup("locationField"); params[pnr++] = intdup(13); params[pnr++] = strdup("gpsField"); params[pnr++] = intdup(14); params[pnr++] = strdup("divemasterField"); params[pnr++] = intdup(15); params[pnr++] = strdup("buddyField"); params[pnr++] = intdup(16); params[pnr++] = strdup("suitField"); params[pnr++] = intdup(17); params[pnr++] = strdup("notesField"); params[pnr++] = intdup(20); params[pnr++] = strdup("weightField"); params[pnr++] = intdup(21); params[pnr++] = strdup("tagsField"); params[pnr++] = intdup(22); // Numbers are indexes of possible options params[pnr++] = strdup("separatorIndex"); params[pnr++] = intdup(0); params[pnr++] = strdup("datefmt"); params[pnr++] = intdup(2); params[pnr++] = strdup("durationfmt"); params[pnr++] = intdup(2); params[pnr++] = strdup("units"); params[pnr++] = intdup(units); params[pnr++] = NULL; return parse_manual_file(file.c_str(), params, pnr - 1); }