Spesso e volentieri mi ritornavano degli errori utilizzando le funzioni VAL(stringa) e CINT(stringa). Ovviamente i valori di stringa sono numerici tipo "123". Ho cercato di scoprire la causa e ho visto che gambas va in errore quando nella stringa ci sono caratteri particolari. Ho allora fatto questa funzioncina che sostituisce il valore "0" al posto dei caratteri strani. E' corretto così o c'è qualcosa che mi sfugge ? Utilizzo Gambas 3 e Ubuntu 10.4
Public Sub ControlloSTR()
Dim i As Integer
For i = 0 To Len(sStringa)
If Asc(sStringa, i) > 57 Or Asc(sStringa, i) < 48 Then
Mid$(sStringa, i, 1) = 0
Endif
Next
End
Spesso e volentieri mi ritornavano degli errori utilizzando le funzioni VAL(stringa) e CINT(stringa). Ovviamente i valori di stringa sono numerici tipo "123". Ho cercato di scoprire la causa e ho visto che gambas va in errore quando nella stringa ci sono caratteri particolari. Ho allora fatto questa funzioncina che sostituisce il valore "0" al posto dei caratteri strani. E' corretto così o c'è qualcosa che mi sfugge ? Utilizzo Gambas 3 e Ubuntu 10.4
Public Sub ControlloSTR()
Dim i As Integer
For i = 0 To Len(sStringa)
If Asc(sStringa, i) > 57 Or Asc(sStringa, i) < 48 Then
Mid$(sStringa, i, 1) = 0
Endif
Next
End
Non puoi semplicemente eliminare il carattere indesiderato? inserire 0 significa falsare il numero....se io scrivo "456a" la tua funzione fa diventare il mio numero "4560" quando invece dovrebbe essere, a rigor di logica, "456"
PUBLIC FUNCTION ControlloSTR(Stringa AS String) AS String
DIM i AS Integer
DIM chart AS String
chart = ""
FOR i TO Len(Stringa)
IF IsDigit(Mid$(sStringa, i, 1)) THEN chart &= Mid$(sStringa, i, 1)
NEXT
RETURN chart
END