per i posteri: è stato un parto...... e alla fine ho usato il buon vecchio grep , secondo la mia modesta opinione (e io di programmazione ci capisco poo) come ho gia detto le regexp il gambero le gestisce davvero ..... male tipo: analizziamo , cè il comando scan che farebbe quasi un ottimo lavoro se non poi cascare su pattern, che non mi sembrano aderenti a gli standard perl o qualsiasi altro per le regexp , il comando ad una riga di regexp farebbe a livello di pattern un ottimo lavoro , ma mi casca sul fatto che non legge in maniera globalmatch ma solo una riga e non cè un metodo o una classe chepossa farlo , l unico potrebbe essere scrivere il mega pappone che si trova nel help , una roba che per un beginner , che è leggermente piu avanti di hello world , diventa un po un suicidio non assistito , in pratica quello che la shell linux con grep awk ,perl e autoit (in windows )(che sono i linguaggi che "conosco") fanno in una riga massimo due e sopratutto con sintassi da beginner gambas la fa complicata un casino , senza apportare nessun vantaggio dalla complicanza
di seguito la mia soluzione
Dim GetwayIP As String
Dim Getway As String
Dim GetwayMeno As String
Dim IP As String
Dim Port3389 As String
Dim num, ss As String[]
Dim i As Byte
If TextBox1.Text = "" Then
Message.Error("Errore devi inserire la pass di root se vuoi che funzioni, Ciao!")
Else
Shell "(/sbin/ip route | awk '/default/ { print $3 }')" To GetwayIP
Getway = Trim(GetwayIP)
GetwayMeno = Left(Getway, -1)
Shell "echo " & TextBox1.Text & " | sudo -S nmap -T4 -p3389 " & Getway & "/24 -oN /tmp/h" Wait
Shell "cat /tmp/h | grep -oP '" & GetwayMeno & "*'" To IP
Shell "cat /tmp/h | grep -P '3389/tcp '" To Port3389
ss = Split(IP, "\n")
ss.Remove(0)
num = Split(Port3389, "\n")
For i = 0 To num.Max
Print ss[i]
Print num[i]
Next
Endif
P.S. due cose che mancano secondo me nell ide di gambas sono il duplica righe con ctrl+d stile scite editor e quando seleziono una variabile vederla selezionata in tutto il foglio
saluti