Newsgroup: it.comp.lang.visual-basic
Titolo: numeri o lettere in string

Dovrei trovare in una stringa un numero da 0 a 9 presente in mezzo a lettere
C'e' un comando che mi dice che e' un numero o una lettera?
Come potrei fare in modo veloce senza usare il for 0 to 9 e ricercare
individualmente per ogni numero in tutta la stringa o i ogni lettera conm
Instr  >chr$(48)  <chr$(57).
Qualche stringa (straccio) di consiglio?
ciao grazie
email: 
wl...@ticino.com
reply cancella [NOSPAM]

Qualche stringa (straccio) di consiglio?
Prova a guardarti l'help dell'istruzione Like.
es: MsgBox Prova$ Like "*#*"
Ti stampa Vero se in prova$ c'è un numero
Spero di esserti stato d'aiuto
Ciao
Daniele

 Ti stampa Vero se in prova$ c'è un numero
qualche cosa si ma non trovo il siostema di definire ad esempio:
stringa$= "abc123def"
dovrei trovare la posizione del numero 3
sto provando con like, instrrev ecc... e chr$(47) to chr$(57)
ma non mi viene con un giro micidiale e ripetizioni varie... sono in tilt!
non riesco a combinare correttamente i comandi.
Acc.. c'e' l'ho li' la soluzione...hi...
entro mattina la trovo... qualche consiglio benvenga!
ciaooo

 Qualche stringa (straccio) di consiglio?
Se ho colto il senso del quesito:
  If "abc12def" Like "*#*" Then
    MsgBox "Contiene numeri."
  Else
    MsgBox "Non contiene numeri."
  End If
--
Ciao.
Maurizio




 entro mattina la trovo... qualche consiglio benvenga!
Sicuramente a quest'ora starai dormendo beatamente con la soluzione in
tasca... ad ogni buon conto ricopio qui sotto, per confronto e conforto, un
esempio di come la vedo io la cosa: forse funziona, forse c'e' di meglio...:
DefBool B
DefCur C
DefDbl D
DefSng F
DefInt I-K
DefLng L
DefObj O
DefStr S
DefDate T
DefVar V
DefByte Y
Option Explicit
Public Sub Main()
  Call Test_GetNumChrsFromStr
End Sub
Private Sub Test_GetNumChrsFromStr()
Dim c, d, f, i, l, s, sMsg
  Let s = "abcdef-1.234,56789012345678901ghi"
  Let d = MyCDbl(s)
  Let c = MyCCur(s)
  Let f = MyCSng(s)
  Let i = MyCInt(s)
  Let l = MyCLng(s)
  Let sMsg = _
      "Stringa da convertire:" & vbLf _
    & """" & s & """." & vbLf & vbLf _
    & "Valori numerici ottenuti:" & vbLf _
    & "Cur: " & vbTab & c & ";" & vbLf _
    & "Dbl: " & vbTab & d & ";" & vbLf _
    & "Int: " & vbTab & i & ";" & vbLf _
    & "Lng: " & vbTab & l & ";" & vbLf _
    & "Sng: " & vbTab & f & "."
  Call MsgBox(sMsg, vbOKOnly + vbInformation, App.Title)
End Sub
Private Function MyCCur(ByVal sStr) As Currency
Dim cRet
  On Local Error Resume Next
  Let cRet = GetNumChrsFromStr(sStr)
  Let MyCCur = cRet
End Function
Private Function MyCDbl(ByVal sStr) As Double
Dim dRet
  On Local Error Resume Next
  Let dRet = GetNumChrsFromStr(sStr)
  Let MyCDbl = dRet
End Function
Private Function MyCInt(ByVal sStr) As Integer
Dim iRet
  On Local Error Resume Next
  Let iRet = GetNumChrsFromStr(sStr)
  Let MyCInt = iRet
End Function
Private Function MyCLng(ByVal sStr) As Long
Dim lRet
  On Local Error Resume Next
  Let lRet = GetNumChrsFromStr(sStr)
  Let MyCLng = lRet
End Function
Private Function MyCSng(ByVal sStr) As Single
Dim fRet
  On Local Error Resume Next
  Let fRet = GetNumChrsFromStr(sStr)
  Let MyCSng = fRet
End Function
Private Function GetNumChrsFromStr(ByVal sStr) As String
Dim b, i, s, sRet
  Let sRet = "0"
  If IsNumeric(sStr) Then
    Let sRet = sStr
  Else
    If (sStr Like "*#*") = True Then
      For i = 1 To Len(sStr)
        If InStr("+,-.0123456789", Mid$(sStr, i, 1)) = 0 Then
          If b = True Then
            Exit For
          Else
          End If
        Else
          Let s = s & Mid$(sStr, i, 1)
          If b = True Then
          Else
            Let b = True
          End If
        End If
      Next
      If IsNumeric(s) Then
        Let sRet = s
      Else
      End If
    Else
    End If
  End If
  Let GetNumChrsFromStr = sRet
End Function
--
Ciao.
Maurizio

 wrote in message
7hjdlv$621$1...@nslave1.tin.it...


 tutto quel codice mi sembra troppo...hihi... :-))))
Perle ai porci...hihi... :-))))
E potevi fare a meno di ri-quotare quella schifezza.
--
Ciao.
Maurizio

Ti faccio un esempio:
In una text dove devo scrivere ad esempio un cognome non ci possono essere
dei numeri quindi digito:
For I = 1 to Len(txtcognome)
	n = mid(txtcognome,I,1)
	if isnumeric(n) then
		msgbox "Inserire solo numeri"
		txtcognome.setfocus
	end if
next
ciao da Alessandro