Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - ricerca valore textbox
Forum - C# / VB.NET - ricerca valore textbox

Avatar
fabio7586 (Normal User)
Newbie


Messaggi: 18
Iscritto: 07/05/2008

Segnala al moderatore
Postato alle 13:18
Mercoledì, 07/05/2008
Questo topic è stato chiuso dal moderatore

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




Spero di essere stato chiaro! Vi prego aiutatemi!

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:34
Mercoledì, 07/05/2008
Testo quotato

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

  1. 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

  1. ("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.

In conclusione, riscrivi tutto.
Codice sorgente - presumibilmente VB.NET

  1. Dim Vocals As String() = {"a", "e", "i", "o", "u"}
  2.  
  3. For I As Int16 = 0 To box_cognome.Text.Length - 1
  4.   'Controlla che la lettera non sia contenuta
  5.   'nell'insieme delle vocali, ossia che non sia
  6.   'una vocale
  7.   If Not (Array.IndexOf(Vocals, box_cognome.Text(I).ToString.ToLower) >= 0) Then
  8.     ...
  9.   End If
  10. Next


PM
Avatar
fabio7586 (Normal User)
Newbie


Messaggi: 18
Iscritto: 07/05/2008

Segnala al moderatore
Postato alle 12:49
Giovedì, 08/05/2008
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:asd:

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:49
Giovedì, 08/05/2008
Ok, alla prossima :k:

PM