Daniele93 (Normal User)
Expert
Messaggi: 226
Iscritto: 29/05/2009
|
Buona domenica a tutti!
Ho un problema da risolvere... In una textbox ho una spece di serie di scontrini es:
Margarita 10,00
Limoncino 12,00
Totale: 22,00
________________________________________________________
Margarita 10,00
Caffè 1,00
Totale: 11,00
Gli scontrini sono separati da una serie di underscore. Mi servirebbe di recuperare tutti i vaori dei totali di ogni scontrino e di metterli in un totale comune che poi scrivero in una label.
Qualcuno sà dirmi come recupero SOLO e TUTTI i totali?
Grazie in anticipo!!!
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Sapendo quali sono i caratteri separatori tra le diverse voci te la puoi cavare con una serie di split, altrimenti scorri tutta la textbox in cerca di caratteri numerici.
|
|
Daniele93 (Normal User)
Expert
Messaggi: 226
Iscritto: 29/05/2009
|
Tra quali voci? E se cercassi i caratteri numerici come? e come faccio a sapere qual' è il totale?
Grazie!
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Se per Totali intendi solo la cifra che segue Totale:
Dim Totali() As String = Split(TextBox1.Text, "Totale:")
|
|
Daniele93 (Normal User)
Expert
Messaggi: 226
Iscritto: 29/05/2009
|
Ma così ottengo tante stringhe che contengono gli scontrini perchè per ogni totale che incontra crea una stringa... Ma a me seve di separare i nemri che si trovano imparte ai totali da tutto il resto scritta "Totale:" Compresa.
Es:
Dopo aver cliaccato il bottone dovrei avere un' array di stringhe che contiene
Totali(0)=22,00
Totali(1)=11,00
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Non sapendo quali sono i caratteri separatori non posso darti indicazioni precise.
Individua qual'è il carattere <a capo> di ogni riga.
Con lo split otterrai una serie di array con tutte le voci.
Individua quelle che cominciano con "Totale:" ed estrai il valore.
|
|
Daniele93 (Normal User)
Expert
Messaggi: 226
Iscritto: 29/05/2009
|
Il problema è che non ci sono caratteri che determinano l' accapo e se mettessi ad esempio il simbolo "€" non funzionerebbe più il conto del totale di ogni singolo scontrino, inquanto non è un carattere numerico...
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Prova così:
Dim Righe() As String = Split(TextBox1.Text, "Totale")
A me dà una serie di array e a parte il primo, gli altri incominciano con ": xx,xx ..."
Individua la posizione della virgola ed estrai dalla terza posizione alla posizione della virgola + 2
|
|
Daniele93 (Normal User)
Expert
Messaggi: 226
Iscritto: 29/05/2009
|
L' idea mi sembra buona... Ho provato:
Codice sorgente - presumibilmente VB.NET |
Dim Righe() As String = Split(TextBox1.Text, "Totale") Dim x As Integer = 1 For x = 1 To Righe.Length totale = totale + CType(Righe(x).Substring(3, 4), Single) Next x MsgBox(totale.ToString)
|
Ma mi dice indice oltre i limiti della matrice. Errore che incontro praticamente ogi volta! Però adesso non riesco a capire perchè! Ovviamente perchè righe non contiene stringhe, MA perchè???
|
|