Autore Topic: [Risolto] Campi stringa e sqlite  (Letto 1565 volte)

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
[Risolto] Campi stringa e sqlite
« il: 29 Settembre 2010, 07:59:33 »
Nella mia tabella alimenti, gia' sistemata popolata dai ricords e che conta circa 700 e passa records, i cambi di alcuni valori che 'dovrebbero essere' float sono al contraio in formato testo. Ritenete che debba variare tutti i records oppure (come sto facendo ma non so se è giusto) tenere i cambi testo e al momento opportuno, se serve fare di conto, convertirli in valori float? Altra domanda sulla conversione:  convertire con CFloat(valore stringa) da errore mentre CFloat(val(valore stringa)) non da' errore, ma sapevo che cfloat si puo' usare alone.
« Ultima modifica: 30 Settembre 2010, 22:35:18 da andy60 »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Datemi una buona notizia sui campi stringa!
« Risposta #1 il: 29 Settembre 2010, 14:27:55 »
1) se stai usanto SQLite, il problema non si pone, dato che comunque questo dbms usa sempre e comunque il formato stringa per memorizzare le sue cose. Indi per cui è meglio che tu usi la conversione con Gambas.

2) devi fare attenzione ai numeri in virgola mobile, e alle funzioni di conversione (che sono già stati trattati in precedenza. La funzione CFloat() converte in float un numero contenuto, generelmente, in una stringa, ma questo deve essere espresso in formato USA, ovvero con il separatore "." (punto) per i decimali. Diversamente Val() fà esattamente il contrario, ovvero dipende dalla lingua impostata sul tuo sistema che, presumo, sia Italiano (it_IT), per cui il separatore dei decimali è la "," (virgola).

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Datemi una buona notizia sui campi stringa!
« Risposta #2 il: 29 Settembre 2010, 14:37:15 »
@ andy60

Cerca di utilizzare un titolo che sia consono al contenuto della discussione per favore. Questo agevola la ricerca da parte di altri utenti con il tuo stesso problema.

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Datemi una buona notizia sui campi stringa!
« Risposta #3 il: 29 Settembre 2010, 15:40:08 »
@ andy60

Cerca di utilizzare un titolo che sia consono al contenuto della discussione per favore. Questo agevola la ricerca da parte di altri utenti con il tuo stesso problema.

fatto

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Datemi una buona notizia sui campi stringa!
« Risposta #4 il: 29 Settembre 2010, 15:47:31 »
@ andy60

Cerca di utilizzare un titolo che sia consono al contenuto della discussione per favore. Questo agevola la ricerca da parte di altri utenti con il tuo stesso problema.

fatto

Perfetto....grazie mille... ;)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Campi stringa e sqlite
« Risposta #5 il: 29 Settembre 2010, 17:48:46 »
Vabbè, a parte questa fastidiosissima intromissione della "mosca", dove eravamo rimasti?  :rotfl: :rotfl: :rotfl:

Oggi non sò, ma ho voglia di massacrare cesko...  ;D

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Datemi una buona notizia sui campi stringa!
« Risposta #6 il: 30 Settembre 2010, 06:35:23 »
1) se stai usanto SQLite, il problema non si pone, dato che comunque questo dbms usa sempre e comunque il formato stringa per memorizzare le sue cose. Indi per cui è meglio che tu usi la conversione con Gambas.

2) devi fare attenzione ai numeri in virgola mobile, e alle funzioni di conversione (che sono già stati trattati in precedenza. La funzione CFloat() converte in float un numero contenuto, generelmente, in una stringa, ma questo deve essere espresso in formato USA, ovvero con il separatore "." (punto) per i decimali. Diversamente Val() fà esattamente il contrario, ovvero dipende dalla lingua impostata sul tuo sistema che, presumo, sia Italiano (it_IT), per cui il separatore dei decimali è la "," (virgola).

nella tabella mi trovo valori stringa del tipo "5,4". Mi stai dicendo che prima della conversione in CFloat devo switchare la virgola col punto?
« Ultima modifica: 30 Settembre 2010, 07:06:18 da andy60 »

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Datemi una buona notizia sui campi stringa!
« Risposta #7 il: 30 Settembre 2010, 11:23:16 »
1) se stai usanto SQLite, il problema non si pone, dato che comunque questo dbms usa sempre e comunque il formato stringa per memorizzare le sue cose. Indi per cui è meglio che tu usi la conversione con Gambas.

2) devi fare attenzione ai numeri in virgola mobile, e alle funzioni di conversione (che sono già stati trattati in precedenza. La funzione CFloat() converte in float un numero contenuto, generelmente, in una stringa, ma questo deve essere espresso in formato USA, ovvero con il separatore "." (punto) per i decimali. Diversamente Val() fà esattamente il contrario, ovvero dipende dalla lingua impostata sul tuo sistema che, presumo, sia Italiano (it_IT), per cui il separatore dei decimali è la "," (virgola).

nella tabella mi trovo valori stringa del tipo "5,4". Mi stai dicendo che prima della conversione in CFloat devo switchare la virgola col punto?

Potresti farlo indipendentemente da cosa accetti gambas. In questo modo sei sicuro che qualsiasi valore ci sia nel campo tu avrai sempre un numero con il "." come separatore decimale.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Campi stringa e sqlite
« Risposta #8 il: 30 Settembre 2010, 12:27:09 »
Guarda, se usi sempre e comunque un bel Replace(valore, ",", ".") prima di convertire in numero, non fai un soldo di danno. Al massimo non sostituisce nulla.

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Campi stringa e sqlite
« Risposta #9 il: 30 Settembre 2010, 17:32:11 »
fatto...ho una bella domanda x te..ma creo una nuova discussione....Oggetto: metodi nascosti e pdfwriter..

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Campi stringa e sqlite
« Risposta #10 il: 30 Settembre 2010, 22:25:01 »
fatto...ho una bella domanda x te..ma creo una nuova discussione....Oggetto: metodi nascosti e pdfwriter..
Ma allora ... hai Risolto?   :coder:
Ciao.
:ciao:

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
[Risolto] Campi stringa e sqlite
« Risposta #11 il: 30 Settembre 2010, 22:37:51 »
@picavbg

risolto con questa progressione:
1. converto i campi testo in float con
Codice: [Seleziona]
CFloat(Replace$(TextBox2.text, ",", "."))
2. do' in pasto i float alle funzioni che restituiscono float
3. visualizzo i risultati con format$

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [Risolto] Campi stringa e sqlite
« Risposta #12 il: 01 Ottobre 2010, 17:30:44 »
Andy, per altre cose, apri un'altra discussione...