:ciao:
come faccio a "passare" l'uscita di una shell ad una variabile?
' Gambas module file
Public Sub Main()
Dim a As Integer
Shell "gpio mode 1 input" ' setto il pin 1 come input
Do
' loop infinito che controlla se il piedino1 diventa =1
Shell "gpio read 1" For Write
Loop
End
quel FOR WRITE mi manda all'uscita standard io vorrei invece intercettarlo e caricarlo nella variabile a (integer)
:)
con il to variabile hai quello che ti serve....
esempio:
Dim ris As String
Shell "ls " & Application.Path To ris
Print ris
Perche' allora se cerco di convertirlo in intero mi da l'errore segnalato? gasp! non capisco!
Public Sub Main()
Dim a As String
Dim ib As Integer
Shell "gpio mode 1 input" 'setto il pin 1 come input
Do
Shell "gpio read 1" To a
Print a
ib = CInt(a) 'ERRORE! [type mismatch: wanted integer, got string instead]
If ib = 1 Then Print "evento"
Loop
End
a e' una stringa, CInt dovrebbe convertirla in intero invece... mi sa che sto prendendo il solito granchio! :)
:ciao:
Direi che :-[ la funzione CInt() andrebbe usata nel caso in cui il valore è già numerico, sebbene di tipo non Intero, e lo si intende convertire - appunto - in un Intero.
Poniamo questo semplice esempio:
Public Sub quellocheè()
Dim b As Byte
Dim i As Integer
b = 100
' Convertiamo il valore contenuto nella variabile "b" da tipo "Byte" in tipo "Integer":
i = CInt(b)
Print i
End