Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30

    [VB] Gestire più istruzioni IF

    Ciao a tutti, eccomi di nuovo qui con una semplice domanda ma che non riesco a trovare soluzione.

    Come posso gestire questo tipo di condizione IF senza dover ripetere ogni volta il codice?

    If TextBox1.Text = "00000000" Then MsgBox("Valore non valido", vbCritical, "Errore")
    If TextBox1.Text = "11111111" Then MsgBox("Valore non valido", vbCritical, "Errore")
    If TextBox1.Text = "22222222" Then MsgBox("Valore non valido", vbCritical, "Errore")
    If TextBox1.Text = "33333333" Then MsgBox("Valore non valido", vbCritical, "Errore")
    ....etc

    Possibile che per ogni valore debba riscrivere la stringa?

    Non esiste un qualcosa del tipo:

    If TextBox1.Text = "00000000" oppure "11111111" oppure "22222222" oppure "33333333" Then MsgBox("Valore non valido", vbCritical, "Errore")

    A buon rendere...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da Celeste' Visualizza il messaggio
    Ciao a tutti, eccomi di nuovo qui con una semplice domanda ma che non riesco a trovare soluzione.

    Come posso gestire questo tipo di condizione IF senza dover ripetere ogni volta il codice?

    If TextBox1.Text = "00000000" Then MsgBox("Valore non valido", vbCritical, "Errore")
    If TextBox1.Text = "11111111" Then MsgBox("Valore non valido", vbCritical, "Errore")
    If TextBox1.Text = "22222222" Then MsgBox("Valore non valido", vbCritical, "Errore")
    If TextBox1.Text = "33333333" Then MsgBox("Valore non valido", vbCritical, "Errore")
    ....etc

    Possibile che per ogni valore debba riscrivere la stringa?

    Non esiste un qualcosa del tipo:

    If TextBox1.Text = "00000000" oppure "11111111" oppure "22222222" oppure "33333333" Then MsgBox("Valore non valido", vbCritical, "Errore")

    A buon rendere...
    Ciao
    Guardati il blocco Select Case.
    Il tuo codice diventa:
    codice:
    Select case TextBox1.Text
        case "00000000":
              MsgBox("Valore non valido", vbCritical, "Errore")
        case "11111111":
               MsgBox("Valore non valido", vbCritical, "Errore")
    End Select
    Detto ciò.. ragiona sul perché devi dare errore se si inserisce 11111111 o 0000000. Qual'è il problema? Non possono essere tutti numeri uguali?

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Esiste anche la OR ...


    Ma come ti hanno già detto bisogna vedere il perché di questi controlli...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Diciamo che se devo scrivere così:

    Select case TextBox1.Text
    case "00000000":
    MsgBox("Valore non valido", vbCritical, "Errore")
    case "11111111":
    MsgBox("Valore non valido", vbCritical, "Errore")
    End Select


    diventa sempre una ripetizione di codice quindi vale la pena che continui a scrivere come prima.

    Il fatto che tutti i valori siano uguali è solo un esempio, ma potrebbero essere anche tutti diversi.

    Con l'or non funziona o forse lo scrivo male io

    If TextBox1.Text = "00000000" or "11111111" or "22222222" or "33333333" Then MsgBox("Valore non valido", vbCritical, "Errore")

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da Celeste' Visualizza il messaggio
    Diciamo che se devo scrivere così:

    Select case TextBox1.Text
    case "00000000":
    MsgBox("Valore non valido", vbCritical, "Errore")
    case "11111111":
    MsgBox("Valore non valido", vbCritical, "Errore")
    End Select


    diventa sempre una ripetizione di codice quindi vale la pena che continui a scrivere come prima.

    Il fatto che tutti i valori siano uguali è solo un esempio, ma potrebbero essere anche tutti diversi.

    Con l'or non funziona o forse lo scrivo male io

    If TextBox1.Text = "00000000" or "11111111" or "22222222" or "33333333" Then MsgBox("Valore non valido", vbCritical, "Errore")
    Ciao

    Il select permette di scrivere anche
    codice:
    Select case TextBox1.Text
    case "00000000", "11111111", ​ "22222222" :
    L'OR funziona con IF, però devi specificare ogni volta l'operatore di confronto, quindi diventa:
    codice:
    If TextBox1.Text = "00000000" or TextBox1.Text = "11111111" or TextBox1.Text = "22222222"
    Per il resto ci sono metodi specializzati per verificare le stringhe. Se ad esempio vuoi verificare
    se nella textbox sono stati inseriti numeri ch'è la funzione IsNumeric...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Con l'or non funziona o forse lo scrivo male io


    Quando hai qualche suggerimento dovresti approfondire. La programmazione è una cosa seria, si studia, si aprono i libri e si cerca di seguire le indicazioni. Fra l'altro sono conoscenze di base del linguaggio. Se non si possiedono non si può andare avanti con i forum ...

    Probabilmente stai affrontando male il problema perché non lo hai spiegato. Forse potresti usare un array con gli elementi da controllare ... forse ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Concordo con oregon, soprattutto perché creado che tu abbia fatto un esempio 'teorico' e non 'pratico' riguardo ai valori.
    Bisogna vedere il contesto...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Quote Originariamente inviata da renygade Visualizza il messaggio
    Ciao

    Il select permette di scrivere anche
    codice:
    Select case TextBox1.Text
    case "00000000", "11111111", ​ "22222222" :
    L'OR funziona con IF, però devi specificare ogni volta l'operatore di confronto, quindi diventa:
    codice:
    If TextBox1.Text = "00000000" or TextBox1.Text = "11111111" or TextBox1.Text = "22222222"
    Per il resto ci sono metodi specializzati per verificare le stringhe. Se ad esempio vuoi verificare
    se nella textbox sono stati inseriti numeri ch'è la funzione IsNumeric...
    Ok era quello che cercavo grazie .

    Al momento sto studiando il manuale "a scuola con visual basic" ma ci sono le cose basilari di primo approccio, tutto il resto lo cerco su internet anche se in questo caso non avevo trovato la risposta.
    Scusate se magari vi pongo questioni banali. Il prossimo libro che vorrei affrontare è "Visual Basic spiegato a mia nonna" però accetto anche vostri consigli se avete qualche documentazione di facile apprensione.

    Mi piace lavorare con i numeri, quindi sto giocherellando al momento importando file binari e la loro successiva modifica.... in un futuro (molto lontano ) il mio scopo sarà successivamente di poterli caricare su specifici integrati attraverso un programmatore però non ho fretta.

    Grazie a tutti

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da Celeste' Visualizza il messaggio
    Ok era quello che cercavo grazie .

    Al momento sto studiando il manuale "a scuola con visual basic" ma ci sono le cose basilari di primo approccio, tutto il resto lo cerco su internet anche se in questo caso non avevo trovato la risposta.
    Scusate se magari vi pongo questioni banali. Il prossimo libro che vorrei affrontare è "Visual Basic spiegato a mia nonna" però accetto anche vostri consigli se avete qualche documentazione di facile apprensione.

    Mi piace lavorare con i numeri, quindi sto giocherellando al momento importando file binari e la loro successiva modifica.... in un futuro (molto lontano ) il mio scopo sarà successivamente di poterli caricare su specifici integrati attraverso un programmatore però non ho fretta.

    Grazie a tutti
    Ciao
    Se ti posso consigliare, la prima guida che ho letto è questa:
    http://www.pierotofy.it/pages/guide/..._Basic_dotNET/
    E' un po' datata e non c'è proprio tutto. Però ha di bello che parte quasi da 0 e se segui l'ordine, provando a ripetere gli esercizi man mano, impari le cose nell'ordine giusto. Tipo il costrutto "select case" è spiegato quasi all'inizio perché al di là della sintassi di VB.NET, lo stesso schema è presente anche in altri linguaggi. E' proprio uno dei fondamenti della programmazione, assieme all'IF, e ai cicli con Do e For.. Il mio consiglio è di iniziare da li. E poi anche libri naturalmente.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.