From 3cb39141f7cfd79c4ee731441bdf29a753351553 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sun, 5 Jul 2020 13:05:54 +0200 Subject: Entferne die Routinen zum Schreiben eines CSV-Datei. Dies hier ist eine Bibliothek zum Lesen/Parsen. --- csv.c | 91 ------------------------------------------------------------------- 1 file changed, 91 deletions(-) (limited to 'csv.c') diff --git a/csv.c b/csv.c index 2948911..6bd157c 100644 --- a/csv.c +++ b/csv.c @@ -474,94 +474,3 @@ csv_err_str(csv_err_t csv_err) } // NOT REACHED } - -static void -csv_write_field(FILE *out, const char *field, const csv_options_t *const csv_options) -{ - assert(csv_options != NULL); - assert(field != NULL); - assert(out != NULL); - - register const int DELIM = csv_options->field_delimiter; - - if ( *field != '\0' ) { - putc(DELIM, out); - - for ( ; *field != '\0'; ++field ) { - if ( *field == DELIM ) { - putc(DELIM, out); - putc(DELIM, out); - } - else { - putc(*field, out); - } - } - - putc(DELIM, out); - } - - if ( ferror(out) ) { - csv_fatal_error(CSV_ERR_IO_WRITE, csv_options); - } -} - -void -csv_write(FILE *out, const csv_t *const csv) -{ - assert(out != NULL); - assert(csv != NULL); - assert(csv->csv_options != NULL); - assert(csv->csv_string.str != NULL); - assert(csv->csv_field.fields != NULL); - - register const int SEP = csv->csv_options->field_separator; - - if ( 0 < csv->csv_field.pos ) { - const char *str = csv->csv_string.str; - const int * field = csv->csv_field.fields; - - csv_write_field(out, &str[*field++], csv->csv_options); - - for ( int i = 1; i < csv->csv_field.pos; ++i ) { - putc(SEP, out); - csv_write_field(out, &str[*field++], csv->csv_options); - } - } - putc('\r', out); - putc('\n', out); - - if ( ferror(out) ) { - csv_fatal_error(CSV_ERR_IO_WRITE, csv->csv_options); - } -} - -void -csv_write_ex(FILE *out, int n, const char *fields[], const csv_options_t *csv_options) -{ - assert(out != NULL); - assert(fields != NULL); - - if ( csv_options == NULL ) { - csv_options = &csv_default_options; - } - - register const int SEP = csv_options->field_separator; - - // process first field - if ( 0 != n && *fields != NULL ) { - --n; - csv_write_field(out, *fields++, csv_options); - - // process next fields - for ( ; n && *fields != NULL; --n, ++fields ) { - putc(SEP, out); - csv_write_field(out, *fields, csv_options); - } - } - putc('\r', out); - putc('\n', out); - - if ( ferror(out) ) { - csv_fatal_error(CSV_ERR_IO_WRITE, csv_options); - } -} -- cgit v1.3