Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao a tutti sono nuovo, ho trovato questo sito cercando di risolvere un problema in vb.net e a quanto vedo e anche ricchissimo di informazioni utili oltre che ben fatto!
Sto cercando aiuto e spero nella vostra collaborazione! il mio problema è questo: mi sto dilettando in vb.net e ho deciso di scrivere il codice per generare il codice fiscale, ho creato delle textbox per nome e cognome e via dicendo, ora sto tentanto di scrivere il codice per il controllo delle prime tre lettere del cognome, ma non riesco a capire come far scorrere un indiceche mi vada a trovare valore(Char) per valore in modo che io possa fare il confronto ed assegnarli o no ad un'altra variabile di appoggio. Avevo iniziato a scrivere il codice ma il compilatore mi da errore!
Dim b, a As String
Dim i As Short
Dim returnValue As String
Form3.Show()
Me.Hide()
For i = 1 To box_cognome.Text.Length
If box_cognome.Text <> ("a" And "A" And "e" And "E" And "i" And "I" And "o" And "O" And "u" And "U") Then
Form3.et_cod_fis.Text = box_cognome.Tex
Postato originariamente da fabio7586: For i = 1 To box_cognome.Text.Length
If box_cognome.Text <> ("a" And "A" And "e" And "E" And "i" And "I" And "o" And "O" And "u" And "U") Then
Form3.et_cod_fis.Text = box_cognome.Tex
Questo codice è... beh... lasciamo stare e diciamo solo "errato".
Per prima cosa, dato che in vb.net gli indici sono sempre in base 0, devi enumerare partendo da 0 e andando fino a box_cognome.Text.Length - 1, altrimenti otterresti un errore nello scrivere il codice giusto.
Seconda cosa: ti ricordo che la proprietà Text di una TextBox restituisce TUTTO il testo e non una sola lettera. Perchè controlli ad ogni iterazione tutto il testo? Non ha senso. Quello che devi fare è prelevare una sola lettera e, dato che le stringhe, dopotutto, sono array di caratteri, puoi fare così:
Codice sorgente - presumibilmente C# / VB.NET
If box_cognome.Text(i) = ... Then ...
Terza cosa: l'operatore And esprima una intersezione logica solo se concatena ESPRESSIONI (ossia comparazioni o valori booleani), ma tu le stai facendo concatenare delle variabili Char. In questo modo stai chiedendo al computer di eseguire un And su bit, sui bit della variabile per la precisione. Quindi questa roba:
Codice sorgente - presumibilmente Delphi
("a" And "A" And "e" And "E" And "i" And "I" And "o" And "O" And "u" And "U")
Alla fine diventa un numero, che, quindi, sarà comunque sempre diverso dal testo immesso.
ciao ti ringrazio per quanto esplicatomi, funge alla perfezione..volevo solo dirti che sono imbarazzato per il codice che ho scritto, ma le uniche esperienze che ho sono con il pascal e un po cn vb6 della scuola, che ho finito 4 anni fa... lascio a te quindi capire in che condizioni mi trovo, i concetti basilari li conosco, ma quando mi trovo di fronte a qualcosa di nuovo vado in panico , spero di poter contare ancora sul tuo aiuto se mi trovassi in difficoltà dopo il macello che ho scritto