Quando si vuole rappresentare in un file di testo semplice una struttura di banca dati, spesso si utilizza questo formato.
Vediamo cosa dice wikipedia a riguardo e come possiamo trattare facilmente grossi database in maniera testuale
Descrizione del formato [modifica]
In questo formato, ogni riga della tabella (o record della base dati) è normalmente rappresentata da una linea di testo, che a sua volta è divisa in campi (le singole colonne) separati da un apposito carattere separatore, ciascuno dei quali rappresenta un valore.
Il formato CSV non specifica una codifica di caratteri, né la convenzione per indicare il fine linea (nei sistemi operativi Unix e Unix-like viene usato il carattere ASCII line-feed, nei sistemi operativi Microsoft Windows si usa la sequenza di caratteri ASCII carriage return+line-feed, mentre in altri può essere usato il solo carattere carriage return), né il carattere da usare come separatore tra campi e nemmeno convenzioni per rappresentare date o numeri (tutti i valori sono considerati come semplici stringhe di testo) e se la prima riga è solo di intestazione o meno. Questi dettagli possono dover essere specificati dall'utente tutte le volte che si importano o esportano dati in formato CSV in un programma come ad esempio un foglio elettronico.
Nel caso più semplice non sono ammessi valori che contengano caratteri di fine linea o il carattere che separa i campi: in questo caso, ad ogni riga della tabella corrisponde esattamente una linea di testo.
Per ovviare a questo limite si ricorre alla codifica che segue: se il valore contiene caratteri di fine linea, il carattere separatore o i doppi apici ("), esso viene racchiuso tra doppi apici e quelli eventualmente presenti nel valore sono raddoppiati. Ad esempio il valore
foo, "bar"
baz
viene trasformato in
"foo, ""bar""
baz"
Con questa codifica, una riga (o record) può essere rappresentata con più linee di testo, ed in fase di importazione dei dati occorre tener conto della trasformazione effettuata per suddividerli nelle righe e colonne originarie.
Carattere che separa i campi [modifica]
Nei sistemi operativi Microsoft Windows alcuni programmi (tra cui Microsoft Excel) utilizzano come carattere separatore tra i campi il separatore di elenco specificato nelle opzioni di internazionalizzazione (nel pannello di controllo). Il valore predefinito è la virgola nei paesi anglosassoni, ed il punto e virgola nei paesi come Spagna, Italia e Francia (ove la virgola viene usata come separatore delle cifre decimali).
Esempi [modifica]
OPERA | AUTORE | CASA EDITRICE |
---|---|---|
I Robot e l'Impero | Isaac Asimov | Mondadori |
Il lungo meriggio della Terra | Brian W. Aldiss | Minotauro |
Absolute OpenBSD "2d Edition" | Michael W. Lucas | No Starch Press |
I mercanti dello spazio | Frederik Pohl, C. M. Kornbluth | Mondadori |
L’esempio qui sopra si potrebbe rappresentare in CSV come:
OPERA,AUTORE,CASA EDITRICE
I Robot e l'Impero,Isaac Asimov,Mondadori
Il lungo meriggio della Terra,Brian W. Aldiss,Minotauro
"Absolute OpenBSD ""2d Edition""",Michael W. Lucas,No Starch Press
I mercanti dello spazio,"Frederik Pohl, C. M. Kornbluth",Mondadori
Si noti che:
- i campi sono separati da virgola e vengono racchiusi tra doppi apici se contengono virgole;
- le linee sono separate da un carattere 'a capo';
- è preferibile non lasciare spazi prima e dopo i campi (se intenzionali, tali spazi vanno racchiusi tra doppi apici);
- per rappresentare un carattere di doppio apice in un campo occorre raddoppiarlo e racchiudere il campo tra doppi apici: " diventa "";
- per rappresentare un’interruzione di riga in un campo, occorre racchiudere il campo tra doppi apici.
comma-separated values abbreviato in CSV è un formato di file basato su file di testo utilizzato per l'importazione ed esportazione ad esempio da fogli elettronici o database di una tabella di dati
via comma-separated values - Wikipedia.