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
Estrarre valori numerici da textBOx
mercoledì 18 marzo 2009 - 11.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
maltra
Profilo
| Newbie
24
messaggi | Data Invio:
mer 18 mar 2009 - 11:09
Salve a tutti , la domanda è molto banale ma mi perdo in un bicchier d'acqua:
Ho una textbox che puo' aver al suo interno numeri stringhe lettere es: " ciao, come va? oggi ho comprato €40 di pane e euro 30.40 di pesce e tre alici al prezzo di 12 €.
Volevo fare una funzione che mi estraesse i valori numerici 40,30.40,12 e me li sommasse.
Questa mi restituisce solo le cifre numeriche 4,0,3,0 ecc...
string number = textBox1.Text.Trim();
for (int i = 0; i < number.Length; i++)
{
if (char.IsNumber(number[i]))
{
MessageBox.Show((number[i]).ToString());
}
}
Ho risolto cosi:
Regex re = new Regex(@"\d+");
foreach (var item in re.Matches(textBox1.Text))
{
item.ToString();
}
Che ne ditE?
Grazie A tutti
http://blogs.dotnethell.it/maltra/
Gianni77
Profilo
| Junior Member
143
messaggi | Data Invio:
mer 18 mar 2009 - 13:59
Non so usare le espressioni regolari... dal basso della mia ignoranza io lì farei uno split usando lo spazio come carattere, eliminando i simboli di valuta, dopodichè controllerei uno ad uno gli elementi dell'array per verificare se sono numerici o meno
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
ven 20 mar 2009 - 20:56
Ciao
La regular expression la puoi migliorare così:
@"[-+]?\b[0-9]*\.?[0-9]+\b"
In questo modo prendi i numeri anche col separatore decimale ( . ) con o senza segno, non in mezzo ad altre parole (tipo r00t)
Luca
maltra
Profilo
| Newbie
24
messaggi | Data Invio:
dom 5 apr 2009 - 14:30
Ciao, non mi funziona una cosa.. vorrei prelevare i numeri ma che non siano "vicini" da lettere es se è "Ok oggi 5" il 5 lo prendo, se è "[5] ciao" il 5 vorrei che nn fosse conteggiato, come faccio per migliorarla?
Grazie
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
dom 5 apr 2009 - 14:55
In questo modo:
@"(?<=\s|^)[-+]?[0-9]*\.?[0-9]+(?=\s|$)"
Fa come dici tu, quindi prende solo i numeri delimitati da spazi (o che si trovano ad inizio e fine riga), ad esempio non prende [5], ma nemmeno "5"
Luca
maltra
Profilo
| Newbie
24
messaggi | Data Invio:
dom 5 apr 2009 - 15:24
Ok grazieee
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
dom 5 apr 2009 - 15:41
>Ok grazieee
Figurati
Se hai risolto, accetta una risposta; se poi hai bisogno di ulteriori miglioramenti, puoi comunque continuare a chiedere su questo thread
Luca
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 !