Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    205

    confonto stringa IsNumeric e non [vb6]

    ciao ragazzi,

    vorrei che la mia applicazione prendesse in esame una stringa e leggesse carattere per carattere e mi segnalasse se vi sono presenti caratteri che non siano numerici e neanche appartenenti all'alfabeto...
    per intenderci se la mia stringa fosse "ad93589edfsddgd9e3tgkldmhdhd" è ok
    se fosse "fwofiwfwoiceps$pog'0648654pogrmgesbòe-" non è ok

    ora per il numerico avevo pensato al IsNumeric e mi chiedo se esiste qualcosa che consideri soltanto lettere dell'alfabeto.
    grazie Giano

  2. #2
    cioè ecludendo i caratteri non alfabetici (-;/@ eccetera)?
    "ci vorrebbero anche più persone come quaestio (a reb verrà un brivido)" wallrider, 22/10/2012

    "Se hai una vita di merda facebook non può essere molto meglio...". kalosjo, 16/10/2012

  3. #3
    Potresti usare le Regular Expression, disponibili con la libreria "Microsoft VBScript Regular Expressions":
    codice:
        Dim s As String
        Dim rx As New RegExp
        
        s = "fwofiwfwoiceòpspog0648654pogrmgesbe"
        
        rx.IgnoreCase = True
        rx.Global = True
        rx.Pattern = "^[a-z0-9àèéìòù]*$"
        
        If rx.Test(s) = False Then
            MsgBox "Stringa non accettata"
        End If
    In questo esempio Pattern è impostato per trovare una sequenza di zero o più caratteri che possono essere alfabetici, numerici e i caratteri accentati della tastiera italiana.
    Chi non cerca trova.

  4. #4
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao oltre al metodo delle Regular Expression, se vuoi testare carattere per carattere ci sono vari modi, io te ne propongo due:
    codice:
    Private Function CharIsOk(car As String) As Boolean
       CharIsOk = False
       Select Case Asc(UCase(car))
          Case 48 To 57 'numeri
             CharIsOk = True
          Case 65 To 90 'caratteri alfabeto maiuscoli
             CharIsOk = True
       End Select
    End Function
    
    Private Function CharIsOk1(car As String) As Boolean
       Dim carOk As String
       carOk = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
       CharIsOk1 = InStr(carOk, UCase(car))
    End Function
    Basta richiamare la funzione passandogli un carattere e restituisce vero se il carattere rientra fra quelli validi..
    Jupy

  5. #5
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    per testare se una stringa contiene almeno un carattere numerico ho fatto così
    codice:
    Private Function hasDigits(Str As String) As Boolean
        Dim regEx As New RegExp
        
        regEx.IgnoreCase = True
        regEx.Global = True
        regEx.Pattern = "^[^0-9]*$"
        
        If regEx.Test(Str) = False Then
            TestString = True
        Else
            TestString = False
        End If
    End Function
    secondo voi bene? o è meglio fare diversamente..

    grazie

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.