19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
Public Sub ControlloSTR()Dim i As IntegerFor i = 0 To Len(sStringa) If Asc(sStringa, i) > 57 Or Asc(sStringa, i) < 48 Then Mid$(sStringa, i, 1) = 0 EndifNext 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.4Codice: [Seleziona]Public Sub ControlloSTR()Dim i As IntegerFor i = 0 To Len(sStringa) If Asc(sStringa, i) > 57 Or Asc(sStringa, i) < 48 Then Mid$(sStringa, i, 1) = 0 EndifNext End
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 chartEND
Indubbiamente la tua soluzione è molto + elegante, e credo proprio che la adotterò. Comunque il problema a cui tu facevi riferimento non mi si è mai posto perchè stranamente i caratteri strani stavano sempre davanti. E ciò si verificava porincipalmente nel caso di importazione dati.E grazie del suggerimento.