Pagina 1 di 1
MDBtools esporta numeri in CSV
Inviato: venerdì 24 marzo 2017, 16:22
da gennysa
Ciao a tutti,
quando uso mdbtools per esportare una tabella in csv ho un problema con i numeri (nel mio caso riguardo ai prezzi)
utilizzo il seguente comando:
aprendo il db da access in una riga ho un prezzo di 20,4 (il tipo di campo e Double) nel csv esportato per la stessa riga ho come valore 2,0399999999999e+01
Come posso risolvere?
Grazie in anticipo
Re: MDBtools esporta numeri in CSV
Inviato: domenica 26 marzo 2017, 18:30
da ivantu
quando dai il comando, hai output?
mdb in csv
Re: MDBtools esporta numeri in CSV
Inviato: martedì 28 marzo 2017, 10:55
da gennysa
In che senso?
Comunque ho notato che già in lettura (con mdb file viewer) i prezzi sono visualizzati in modo errato.
Con access, nessun problema invece...

Re: MDBtools esporta numeri in CSV
Inviato: martedì 28 marzo 2017, 11:12
da ivantu
prova invece ad usare questo comando per convertire
table_name metti il nome della tabella sul database da converire
ilcomando 'mdb-export' esporta già in .csv
Re: MDBtools esporta numeri in CSV
Inviato: martedì 28 marzo 2017, 11:14
da gennysa
Appena provato... stesso problema (4.0935600000000001e+01,1)
Re: MDBtools esporta numeri in CSV
Inviato: martedì 28 marzo 2017, 11:19
da ivantu
che versione di ubuntu usi? la 15.04 è fuori supporto, potrebbe causare il problema?
prova con una live 16.04
Re: MDBtools esporta numeri in CSV
Inviato: martedì 28 marzo 2017, 11:20
da gennysa
15.10
ok.. provo con la live... grazie intanto..
Re: MDBtools esporta numeri in CSV
Inviato: martedì 28 marzo 2017, 11:51
da ivantu
anche la 15.10 è fuori supporto.
aggiungi al comando
Codice: Seleziona tutto
mdb-export database.mdb table_name > output_file.csv
Re: MDBtools esporta numeri in CSV
Inviato: martedì 28 marzo 2017, 14:58
da gennysa
Niente da fare...
provato l'ultimo comando...
provato anche con la 16.10 ma sempre lo stesso problema...
Re: MDBtools esporta numeri in CSV
Inviato: mercoledì 29 marzo 2017, 11:20
da ivantu

I comandi li darai da terminale...
apri il terminale e da i comandi. Copia qui l'output.
Non ho nessun file .mdb per verificare, e da molto tempo che non utilizzo più Office, e non mi sono mai posto il problema.
Re: MDBtools esporta numeri in CSV
Inviato: mercoledì 29 marzo 2017, 12:14
da gennysa
Ah ok.. si da terminale...
Posso inviarti in privato il db?
Ti va di fare una prova?
Grazie
Re: MDBtools esporta numeri in CSV
Inviato: mercoledì 29 marzo 2017, 12:19
da ivantu
Si prova a spedirlo.
Re: MDBtools esporta numeri in CSV
Inviato: mercoledì 29 marzo 2017, 12:41
da gennysa
Inviato MP
Grazie in anticipo
Re: MDBtools esporta numeri in CSV
Inviato: mercoledì 29 marzo 2017, 16:10
da ivantu
Ok, neanche a me funziona.
Però ho una domanda da farti, il formato delle celle qual'è? dal Libreoffice Calc, convertito in csv la tabella, a me risulta sulla colonna Prezzo, è presente il formato Standard e non Valuta.
Io come ti già accennato non posso aprirlo da Office, perchè non c'è l'ho. Ma dovresti tu cambiare quel formato da Office e poi vedere se con linux riesci a convertirlo.
Credo che sia solo qui il problema sul valore delle celle.
Altra prova che ho fatto Noto guardando la colonna PrezzoListino
usando MDB File Viewer, aprendo la tabella con 'Data', i campi valore sono impostati su 2.03333 come hai tu indicato che è. Mentre se vado ad aprire il file table.csv exportato/convertito il campo valore mi risulta a 2, con il campo PrezzoRivenditore è a 0.333.
Se dovessimo creare una formula per riconvertire il valore quello esatto, non saprei. é questione di virgole o punti e virgola, non converte bene per questo motivo. In base a come interpretati.
Re: MDBtools esporta numeri in CSV
Inviato: mercoledì 29 marzo 2017, 16:33
da nuzzopippo
Perdonatemi l'intervento inconcludente (e sconfortante) ma, personalmente, non credo sia una questione di celle, dati etc, bensì proprio della rappresentazione numerica interna ai vari s.o. ove i "numeri" sono una approssimazione dovuta alla rappresentazione binaria. Problema che mi son trovato più volte dinanzi programmando in Visual Basic ed altri linguaggi, giusto un piccolo esempio in python3 sotto
Codice: Seleziona tutto
python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> numero = 0.0
>>> for i in range(1, 1000):
... numero += 0.01
... print(numero, end=' ')
...
0.01 0.02 0.03 0.04 0.05 0.060000000000000005 0.07 0.08 0.09 0.09999999999999999 0.10999999999999999 0.11999999999999998 0.12999999999999998 0.13999999999999999 0.15 0.16 0.17 0.18000000000000002 0.19000000000000003 0.20000000000000004 0.21000000000000005 0.22000000000000006 0
... va anche peggio di come mi aspettassi, ad essere sincero. Come potete vedere incremento numero di un centesimo esatto ad ogni iterazione, partendo da zero, e dopo pochissime iterazioni comincia ad apparire l'imprecisione da approssimazione.
Forse, se i dato nelle tavole hanno formati ben precisi sarebbe il caso di eseguire un formattazione dei dati corrispondenti prima di caricarlo ... ho guardato la documentazione di MDBtools ma a parte i valori di data non ho trovato nulla che permetta di farlo.
Re: MDBtools esporta numeri in CSV
Inviato: mercoledì 29 marzo 2017, 20:36
da gennysa
Non c'è soluzione?
Ma non esiste un'alternativa a MDB-Tools?
Re: MDBtools esporta numeri in CSV
Inviato: mercoledì 29 marzo 2017, 20:45
da gennysa
ivantu [url=http://forum.ubuntu-it.org/viewtopic.php?p=4969662#p4969662][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Ok, neanche a me funziona.
Però ho una domanda da farti, il formato delle celle qual'è? dal Libreoffice Calc, convertito in csv la tabella, a me risulta sulla colonna Prezzo, è presente il formato Standard e non Valuta.
Io come ti già accennato non posso aprirlo da Office, perchè non c'è l'ho. Ma dovresti tu cambiare quel formato da Office e poi vedere se con linux riesci a convertirlo.
Credo che sia solo qui il problema sul valore delle celle.
Altra prova che ho fatto Noto guardando la colonna PrezzoListino
usando MDB File Viewer, aprendo la tabella con 'Data', i campi valore sono impostati su 2.03333 come hai tu indicato che è. Mentre se vado ad aprire il file table.csv exportato/convertito il campo valore mi risulta a 2, con il campo PrezzoRivenditore è a 0.333.
Se dovessimo creare una formula per riconvertire il valore quello esatto, non saprei. é questione di virgole o punti e virgola, non converte bene per questo motivo. In base a come interpretati.
Volevo evitare di usare Access.. se faccio l'esportazione da win mi crea il csv corretto...
Grazie comunque

Re: MDBtools esporta numeri in CSV
Inviato: venerdì 31 marzo 2017, 16:23
da ivantu
capisco,
volevo solo raccomandare se capire era un problema del file o dell'applicazione Mdb Tools su linux.
Ma non esiste un'alternativa a MDB-Tools?
Un'alternativa c'era mdb2odb, converte i file Office-Base per Openoffice. Ora non lo so perchè OpenOffice non è più un software predefinito di ubuntu.
.odb dovrebbe essere lo stesso per .odf per Libreoffice.
Re: MDBtools esporta numeri in CSV
Inviato: venerdì 31 marzo 2017, 18:46
da gennysa
Provo anche questa... grazie sempre...