From 4de8e742cd8f4794687243cae9d928d7a5c427d0 Mon Sep 17 00:00:00 2001 From: axell-brendow Date: Sun, 7 Mar 2021 14:49:25 -0300 Subject: [PATCH] =?UTF-8?q?Cria=20m=C3=A9todos=20para=20ler=20uma=20=C3=BA?= =?UTF-8?q?nica=20c=C3=A9lula=20de=20um=20CSV?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tps/fonte/musica.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tps/fonte/musica.cpp b/tps/fonte/musica.cpp index 336e34a..3af88dd 100644 --- a/tps/fonte/musica.cpp +++ b/tps/fonte/musica.cpp @@ -36,5 +36,33 @@ char *remove_line_break(char line[]) { return line; } +char *read_quotted_csv_field(char *field_ptr, char *output) { + field_ptr++; + while (*field_ptr != '\0') { + if (*field_ptr == '"') { + if (*(field_ptr + 1) == '"') { + *output++ = '"'; + field_ptr += 2; + } else { + field_ptr++; + break; + } + } else { + *output++ = *field_ptr++; + } + } + *output = '\0'; + return field_ptr; +} + +char *read_csv_field(char *field_ptr, char *output) { + if (*field_ptr == '"') return read_quotted_csv_field(field_ptr, output); + + while (*field_ptr != '\0' && *field_ptr != ',') *output++ = *field_ptr++; + + *output = '\0'; + return field_ptr; +} + }