Hello Eagleone,
Sunday, October 3, 2004, 4:54:40 AM, you wrote:
E> Il mio problema è questo: ho un file csv proveniente da un dump di un
[...]
E> Me ne resta solo uno: alcune tuple del db contengono campi text su più
E> righe e questo fa impazzire csv2sql.
E> Nel file csv ci sono quindi delle righe con meno di n-1 ";" (ossia
E> delle tuple su più righe. Per fortuna l'ultima colonna del db è sempre
E> senza testo a capo)
La prima risposta e' che quel file NON e' csv. I <cr> all'interno dei campi
dovrebbero essere escapati, proprio per evitare il tuo tipo di problema.
Fammi indovinare, il "database" in questione e' access (o peggio ancora excel)?
E> Mediante script vorrei per lo meno individuare queste righe e magari
E> correggerle automaticamente.
E' tutto meno che banale: limitarsi a contare i ";" contenuti nelle righe puo'
essere fuorviante, visto che possono esserci dei ; anche all'interno di campi,
purche' delimitati da "".
Potresti tentare di parsare il csv e contare i campi ma, quando c'ew' un campo
che contiene un <cr> questo sara' delimitato solo da una parte e non dall'altra
e il parser te lo segnalera' come errore.
Temo che non esistano soluzioni semplici, la cosa migliore e' scriversi un
convertitore M$csv->csv che elimini tutte le schifezze non standard: non ho
esperienza personale con i "csv" generati da access, ma purtroppo ho avuto piu'
volte a che fare con quelli prodotti da excel ed e' un delirio, basti dire che
in certi casi excel NON e' in grado di rileggere i file "csv" che ha generato!
aps
________________________PS
mailto:Sini@xxxxxxxxxxxx
|