Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93

    [VB.net] Cosa strana con Select case

    Allora ho sto codice:

    codice:
    While pos > 0
      car = Mid(Name, pos, 1)
         Select Case car
            Case "-"
               trovato = True
            Case Is <> ".", " ", "_"
               Exit While
            End Select
       pos -= 1
    End While
    
    ...
    operazioni sulla stringa neme nel caso trovato = true
    cambia il valore di pos e trovato.
    ...
    
    While pos < len(Name)
      car = Mid(Name, pos, 1)
         Select Case car
            Case "-"
               trovato = True
            Case Is <> ".", " ", "_"
               Exit While
            End Select
       pos += 1
    End While
    Allora: nel primo while funziona nel secondo mi esce dal while subito appena fa il case. C'e' qualche bug? o non posso uscire dal select con end while perche' poi dopo si incasina?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Il problema non sara' il Select Case ma la condizione logica della while ...

    E poi questo problema si risolve "dinamicamente" ovvero eseguendo il codice e avendo chiari i valori iniziali di tutte le variabili in gioco ...

    Solamente con il codice non si puo' dire molto ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    no non e' la condizione logica del while purtroppo perche' dentro ci entra, ho provato a scrivere delle line per controllare dove passava. Ho stampato il valore del car dentro il secondo while, ma ho messo di stampare qualcosa prima del pos +=1 e fin li non ci e' arrivato. Quindi suppongo esca attraverso il case...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ok ma ti ripeto ... se non fornisci i valori delle variaibili in entrata, non si puo' dire molto ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    Allora stampati i valori prima dell'entrata del secondo while

    name = "1234 - Qualunque cosa"
    pos = 5
    trovato = false

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    Se uso un if .. else if ... endif al posto del case funziona. Quindi non e' tanto il problema come risolvere il problema e' piu' che altro capire perche' succede.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    In questo caso, appunto, car e' uno spazio e per lo spazio il programma esegue la Exit dal ciclo ...

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    ma non dovrebbe andare uscire solo se e' diverso da " " "." e "_" ?

    Ho provato a mettere anche

    case is <> " ", is <> ".", is <> "_"

    ma non va.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    La , nella case lega le condizioni con una OR ...

    Tu cosa vuoi che succeda?

    Quando deve uscire?

    Quando non deve uscire?

    Cerca di essere chiaro nelle risposte a queste due domande ...

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    A me serviva un AND, cioe' deve uscire quando e' un carattere diverso da quei 3.

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.