From 7357bd2b21dedfda110b4fefff96734e985a18bc Mon Sep 17 00:00:00 2001 From: axell-brendow Date: Sun, 7 Mar 2021 14:50:00 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20m=C3=A9todos=20para=20ler=20o=20camp?= =?UTF-8?q?o=20artistas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tps/fonte/musica.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tps/fonte/musica.cpp b/tps/fonte/musica.cpp index 3af88dd..82b8ebb 100644 --- a/tps/fonte/musica.cpp +++ b/tps/fonte/musica.cpp @@ -64,5 +64,28 @@ char *read_csv_field(char *field_ptr, char *output) { return field_ptr; } +char *read_artist(char *output, char *artist_ptr) { + char delimiter = *artist_ptr++; + + while (*artist_ptr != delimiter) { + if (*artist_ptr == '\\') *output++ = *artist_ptr++; + *output++ = *artist_ptr++; + } + + *output = '\0'; + return artist_ptr + 1; +} + +void read_artists(Musica *music, char *artists_field) { + artists_field++; + int i = 0; + while (1) { + artists_field = read_artist(music->artists[i++], artists_field); + if (*artists_field == ']') break; + artists_field += 2; + } + music->num_artists = i; +} + }