Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Formattazione ed analisi delle stringhe

    Ciao a tutti,
    ammetto di essere un novizio dell'ambiente .NET, arrivo dal VB6.

    Vorrei visualizzare in una textbox un valore intero (proveniente dal database) che vorrei formattare utilizzando il separatore delle migliaia (in accordo con le impostazioni di cultura dell'utente).
    Per assegnare il valore alla textbox scrivo:
    int i = (int)riga["NrLotto"];
    txtNrLotto.Text = i.ToString("N0", new System.Globalization.CultureInfo("it-IT"));

    Al momento di salvare il valore nel database (eventualmente modificato dall'utente) scrivo:

    riga["NrLotto"] = Int32.Parse(txtNrLotto.Text, NumberStyles.Integer | NumberStyles.AllowThousands, new System.Globalization.CultureInfo("it-IT"));

    E tutto funziona tutto correttamente. Ma il mio dubbio è: possibile che non ci sia il modo di far eseguire l'operazione "totalmente" alla "CultireInfo", anzichè dover essere io a "sapere" che nel campo il parser deve aspettarsi di trovare i simboli per la separazione delle migliaia?

    Esistono altri modi per effettuare il "parse" della stringa?

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Scusa,

    non ha alcun senso salvare i dati numerici 'formattati' nel campo di una tabella di un database.
    Non devi confondere la rappresentazione del numero con il suo valore reale.
    Sono due cose diverse.

    A meno che il campo della tabella sia stringa e non numerico, nel qual caso allora non ha senso usare un campo stringa per contenere un valore numerico, perchè porta a conseguenze non prevedibili.

    Immagino in un applicazione multi-utente / multi-nazione cioè utilizzato contemporaneamente da più utenti in lingua diversa...
    Non capirebbero più niente.


  3. #3
    Ma infatti Gibra, io nel database ovviamente ho il campo di tipo "intero".

    Il problema è che "a video" ho una stringa (nella TexBox "txtNrLotto") formattata con i separatori delle migliaia (es. "1.234").
    Devo essere in grado di fare il "parse" di tale stringa per ricavarne il corrispondente valore numerico (nello specifico, intero).

    Facendo...

    codice:
    riga["NrLotto"] = Int32.Parse(txtNrLotto.Text, NumberStyles.Integer | NumberStyles.AllowThousands, new System.Globalization.CultureInfo("it-IT"));
    ...funziona, però sono io a dover "sapere", mediante il parametro NumberStyles.AllowThousands, che nella stringa possono essere presenti i separatori decimali.

    In sostanza mi domando:
    quando assegno alla textbox il valore proveniente dal campo database utilizzo:

    codice:
    txtNrLotto.Text = i.ToString("N0", new System.Globalization.CultureInfo("it-IT"));
    e qui praticamente dico alla ToString: "formatta il valore intero che ti sto passando, utilizzando il formato stabilito dalle impostazioni di cultura dell'utente".


    Al contrario, quando assegno al campo il valore della textbox vorrei poter dire in qualche modo "interpretami questa stringa ricavandone il valore numerico intero, aspettandoti che essa possa contenere simboli vari in base alla cultura dell'utente".

    Non so se sono riuscito a spiegarmi! ;-)

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io. Tienilo a mente per il futuro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Ops! Chiedo scusa!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.