int sp_csv_filter_save_table(sp_csv_filter_t *self) { return csv_save(self->table, self->output); }
void save_database(R2RDatabase *database) { puts("creating csv file"); CSV_BUFFER *csv_file = csv_create_buffer(); csv_set_text_delim(csv_file, '"'); csv_set_field_delim(csv_file, ','); char buff[50]; puts("writing header stuff"); csv_set_field(csv_file, 0, 0, database->name); g_snprintf(buff, 50, "%i", database->units); csv_set_field(csv_file, 0, 1, buff); puts("writing body"); int i; for (i = 0; i < database->nruns; i++) { printf("writing date %i\n", i); g_snprintf(buff, 50, "%i", database->run[i]->year); csv_set_field(csv_file, i + 1, 0, buff); g_snprintf(buff, 50, "%i", database->run[i]->month); csv_set_field(csv_file, i + 1, 1, buff); g_snprintf(buff, 50, "%i", database->run[i]->day); csv_set_field(csv_file, i + 1, 2, buff); g_snprintf(buff, 50, "%i", database->run[i]->run_n); csv_set_field(csv_file, i + 1, 3, buff); printf("writing distance %i\n", i); g_snprintf(buff, 50, "%f", database->run[i]->distance); csv_set_field(csv_file, i + 1, 4, buff); printf("writing duration %i\n", i); g_snprintf(buff, 50, "%i", database->run[i]->duration); csv_set_field(csv_file, i + 1, 5, buff); printf("writing type %i\n", i); csv_set_field(csv_file, i + 1, 6, database->run[i]->type); printf("writing feel %i\n", i); g_snprintf(buff, 50, "%i", database->run[i]->feel); csv_set_field(csv_file, i + 1, 7, buff); printf("writing time %i\n", i); g_snprintf(buff, 50, "%i", database->run[i]->time); csv_set_field(csv_file, i + 1, 8, buff); printf("writing route %i\n", i); csv_set_field(csv_file, i + 1, 9, database->run[i]->route); printf("writing notes %i\n", i); printf("notes pointer = %p\n", database->run[i]->notes); printf("notes = %s\n", database->run[i]->notes); csv_set_field(csv_file, i + 1, 10, database->run[i]->notes); } char full_path[database->filename_len + path_len + 1]; strcpy(full_path, path); strcat(full_path, database->filename); csv_save(full_path, csv_file); }