Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di hkproj
    Registrato dal
    Jul 2006
    Messaggi
    250

    controllare il contenuto di una frase, ma non funziona... perchè?

    Ciao, scusate per il titolo ma non sapevo come chiamarlo,
    io ho una funzione:

    Public Function IsGoodValue(ByVal STSLine As String) As Boolean
    Dim SeparatorsArray() As String = {" "}
    Dim ArraySplit() As String
    ArraySplit = STSLine.Split(SeparatorsArray, 2, StringSplitOptions.None)
    For Each Str As String In ArraySplit
    Str.Trim()
    If IsSTSKey(Str) Then
    Return False
    Else
    Return True
    End If
    Next
    End Function

    Public Function IsSTSKey(ByVal STSLine As String) As Boolean
    Select Case STSLine.ToString
    Case "{"
    Return True
    Case "}"
    Return True
    Case "["
    Return True
    Case "]"
    Return True
    Case "?"
    Return True
    Case "-"
    Return True
    Case ";"
    Return True
    Case "%"
    Return True
    Case "|"
    Return True
    Case "#"
    Return True
    Case Else
    Return False
    End Select
    End Function

    io quando ho provato questa funzione con questa frase "questa è } una prova", la funzione mi restituisce true, ma dovrebbe restituirmi false.
    ho capito il perchè mi restituisce true, ma non capisco come rimediare.
    ah dimenticavo...
    questo è il frammento di codice che ho usato per testare la funzione

    If IsGoodValue("questa è } una prova") = True Then
    MsgBox("true")
    Else
    MsgBox("false")
    End If

    grazie mille, e scusate ancora per il titolo

  2. #2
    Utente di HTML.it L'avatar di hkproj
    Registrato dal
    Jul 2006
    Messaggi
    250
    ho sbagliato qualcosa?

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Si tratta di VB6?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di hkproj
    Registrato dal
    Jul 2006
    Messaggi
    250
    hai ragione che sbadato , uso .net

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da hkproj
    Ciao, scusate per il titolo ma non sapevo come chiamarlo
    In effetti, il titolo non è per niente chiaro, ma nemmeno il contenuto del messaggio, almeno per me. Cosa dovrebbe fare la tua funzione di preciso?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di hkproj
    Registrato dal
    Jul 2006
    Messaggi
    250
    bè la mia funzione dovrebbe solo fare in modo di controllare se nella frase passata come argomento ci sia un carattere che non va bene (es: {, }, [ ec...)
    solo che mi restituisce sempre true

  7. #7
    Utente di HTML.it L'avatar di hkproj
    Registrato dal
    Jul 2006
    Messaggi
    250
    ce l'ho fatta
    era un maledettisssssssimo errore logico
    cioè:
    appena la funzione restituisce un risultato la funzione non continua piu il suo percorso (per il semplice fatto che ha già restituito un valore di ritorno) per controllare anche le altre parole quindi bastava assegnare un valore ad una variabile come valore di ritorno.
    quindi doveva essere così:
    codice:
    Public Function IsGoodValue2(ByVal STSLine As String) As Boolean
     Dim SeparatorsArray() As String = {" "}
     Dim ArraySplit() As String
     ArraySplit = STSLine.Split(SeparatorsArray, StringSplitOptions.None)
     For Each Str As String In ArraySplit
     Str.Trim()
     If IsSTSKey(Str) Then
     bol = False
     Exit Function
     Else
     bol = True
     End If
     Next
     End Function
    
    SI NOTI: che bol è una variabile booleana
    grazie cmq per l'attenzione

  8. #8
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    credo che fosse più corretto prima, quando utilizzavi il

    Return False

    poicè in questo modo *la funzione* assume come valore di ritorno False, e non una variabile esterna alla funzione stessa...

    l'unica cosa da aggiungere sarebbe l'Exit Function dopo il Return (?)

    Boolean

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    l'unica cosa da aggiungere sarebbe l'Exit Function dopo il Return (?)

    no il return ti fa già uscire di per se dalla funzione.

  10. #10
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, potresti fare anche una cosa del genere:
    codice:
    Dim vChar() As Char = {"{"c, "}"c, "#"c, "@"c}
    Dim s1 As String = "pro@va"
    If s1.IndexOfAny(vChar) > 0 Then
          MessageBox.Show("trovato carattere non valido")
    End If
    Jupy

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.