Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Separatore decimale
giovedì 22 luglio 2004 - 12.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
snap_ml
Profilo
| Newbie
41
messaggi | Data Invio:
gio 22 lug 2004 - 12:01
Ho un sistema oparativo in italiano, e vorrei ottenere il separatore decimale che si trova nelle impostazioni internzaionali di windows.
Ho provato con System.Globalization.CultureInfo.CurrentUICulture.NumberFormat.CurrencyDecimalSeparator ma mi restituisce sempre la "," anche se io come separatore decimale nelle impostazioni ho il ";".
Come posso fare per ottenere il ";"?
Grazie
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
gio 22 lug 2004 - 12:43
snap_ml, una dimanda ma il separatore a cosa ti serve?Ossia se lo imposti te?
snap_ml
Profilo
| Newbie
41
messaggi | Data Invio:
gio 22 lug 2004 - 15:03
Non capisco la tua domanda :-(..
Voglio sapere il separatore decimale usato dal pc.
oppure mi stai dicendo che se uso il culture info posso fregarmene?
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
gio 22 lug 2004 - 16:19
Spero di non cannare, cmq ti riciclo un utile consiglio sfornato da Brainkiller. Le impostazioni internazionali le trovi nel registro, in particolare quella che interessa a te si trova sotto questa chiave: "HKEY_USERS\\S-1-5-21-329068152-854245398-839522115-500\\Control Panel\\International." La chiave incriminata è la "sDecimal". Puoi leggere e scrivere questa chiave come vuoi, per farlo leggi questo tip:
http://www.dotnethell.it/articles/article.aspx?ArticleID=75
Spero di esserti stato d'aiuto, così tu vai a leggere le impostazioni internazionali che imposti su pannello di controllo. Se però la tua necessità non è questa spiegami meglio il tuo problema.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 22 lug 2004 - 23:01
Ciao snap_ml,
più semplicemente prova a far così.
Modifica le impostazioni di globalization al thread corrente in questo modo:
Thread.CurrentThread.CurrentCulture=new System.Globalization.CultureInfo("it-IT");
e poi prova a stampare con un WriteLine il separatore decimale.
Vedrai che comparirà la virgola.
Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator.ToString());
Per usare la prima linea devi referenziare con using o Imports se usi VB.NET il namespace System.Threading.
ciao
david
snap_ml
Profilo
| Newbie
41
messaggi | Data Invio:
ven 23 lug 2004 - 09:37
Ma questa soluzione praticamente mi fa impostare per il thread le impostazioni in italiano, ma non mi consente di leggere le impostazioni internazionali.Dovrei fare come dice hydra e leggere dal registro?Non si puo' fare la stessa cosa utilizzando il cultureinfo?
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
ven 23 lug 2004 - 13:42
Indipendentemente dalla lingua che usi e dalle impostazioni che hai se tu leggi dal registro hai esattamente quello che il computer usa. Se tu imposti il ; come separatore, il sistema usa ; e nel registro trovi ;. quelle che ti ho suggerito sono le chiavi che va a scrivere il pannello di controllo quando modifichi le impostazioni. Non so se esista una classe del FK che ti permetta di fare questo (che sicuramente sarebbe molto più semplice), ma se operi sul registro ottieni l'effetto desiderato. Provare per credere.
snap_ml
Profilo
| Newbie
41
messaggi | Data Invio:
ven 23 lug 2004 - 15:16
Ti ringrazio, sei stato molto esauriente.
Spero di trovare una classe del framework che sarebbe molto meglio...
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 27 lug 2004 - 00:40
Veramente la prima cosa che mi era balzata all'occhio era questa:
CultureInfo.InstalledUICulture
Cioè InstalledUICulture dovrebbe dirti appunto i parametri della cultura installata con il sistema operativo.
Praticamente come la vecchia API
http://msdn.microsoft.com/library/en-us/intl/nls_2ip1.asp
Io l'ho provata ma c'era qualcosa che non mi quadrava forse perchè sono andato troppo veloce.
Prova ad usarla tu.
Le classi da usare sono queste non ce ne sono altre e dovrebbero fornirti tutte le info.
L'accesso a registro in questo caso mi sembra eccessivo anche perchè cambiando piattaforma (andando per esempio su 98) le chiavi non sono le stesse mentre le classi del Framework si.
ciao
david
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
mer 15 set 2004 - 10:27
Rispondo a un vecchio messaggio perchè ho un problema al riguardo. Siccome Brainkiller mi ha convinto a usare la CultureInfo per impostare i valori (io nella mia applicazione ho bisogno di avere dei parametri settati come voglio io :) ), ho provato a implementare una funzioncina per cambiare questi parametri. Solo che non mi cambia proprio niente. Posto il codice che utilizzo per modificare i valori:
Dim Cult As New CultureInfo("en-US", False)
Cult.NumberFormat.CurrencyDecimalSeparator = "."
Cult.NumberFormat.CurrencyGroupSeparator = ","
la stringa "en-US" l'ho trovata nella guida, in teoria qua dovrei inserire la lingua corrente giusto? Ma come faccio a recuperarla? E poi come faccio di conseguenza ad impostare i valori che mi interessano? Grazie a tutti quelli che vorranno rispondermi. ;)
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !