Autore Topic: La gambas-console  (Letto 710 volte)

Offline elia

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
La gambas-console
« il: 30 Maggio 2015, 15:48:42 »
Salve a tutta la comunità.
Oggi volevo chiedervi come far comparire in una TextArea i messaggi dellaz console. Spiego meglio.

Sotto ogni programma che te stai sviluppando si trova una console dove fa vedere l'output dei messaggi inseriti. Per es se io inserisco "sudo apt-get install gambas3" mi fara vedere l'output da terminale sotto.

ECCO!!! Io voglioche l'output compaia anche nella mia TextArea.
Sapete illuminarmi?
Thank

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: La gambas-console
« Risposta #1 il: 30 Maggio 2015, 17:42:56 »
eh.... la questione che hai posto è molto complessa.


La sua parte semplice è se tu vuoi leggere il risultato unico di un comando. Risultato unico nel senso che l'azione, la funzione del comando si esplica e termina in una sola volta con un solo immediato risultato.
Per esempio, volendo leggere un file di testo con il comando bash cat, questo ci restituirà in console (o in terminale) in un colpo solo, in una sola volta l'intero testo del file: la sua funzione si estinguerà non appena ci avrà restituito i dati contenuti dal file. In tal caso si potrà trasferire con la parola To il risultato in una variabile di tipo stringa:
Codice: gambas [Seleziona]
Public Sub Form_Open()

  Dim s As String

   Shell "cat /percorso/del/file/da/leggere" To s
 
   TextArea1.Text = s

End


Il discorso si complica se il comando, o comunque l'istruzione che determina la scrittura di dati in console, restituisce più dati nel tempo.
In questo caso tu non sai con precisione l'attimo in cui l'istruzione ti restituisce un dato, costringendoti quindi a restare ad osservare l'evento. Si adotterà con la Classe Process una risorsa analoga a quella prevista per la gestione dei file con Open ..... For Read Watch: si sottopone l'istruzione in osservazione, quando sarà giunto da essa uno o più dati insieme, e dunque sarà possibile leggere quei dati, verrà sollevato un evento che ci consentirà di poter leggere quei dati.
Ti mostro un esempio astratto di quanto detto:
Codice: gambas [Seleziona]
Private pr as Process


Public Sub Form_Open()

' Sottopongo la mia istruzione (quella che è, insomma) in osservazione.
' Attribuisco la variabile di tipo "Process" ad un Gruppo (che chiamo ad esempio: "Osservatore"), affinché possa sollevare un evento:
   pr = Shell "istruzione" For Read As "Osservatore"
 
End


Public Sub Osservatore_Read()

  Dim s As String
 
   Line Input #pr, s

   TextArea.Text = s

End

Qualche esempio pratico lo puoi vedere in questa pagina della nostra WIKI:
https://www.gambas-it.org/wiki/index.php/Intercettare_i_dati_del_mouse_dai_file-device_mouse,_mice,_event

Invero, anche il primo caso, quello più semplice, puoi risolverlo con la modalità appena vista; e quindi così:
Codice: gambas [Seleziona]
Private pr as Process


Public Sub Form_Open()

' Sottopongo la mia istruzione (quella che è, insomma) in osservazione.
' Attribuisco la variabile di tipo "Process" ad un Gruppo (che chiamo ad esempio: "Osservatore"), affinché possa sollevare un evento:
   pr = Shell "cat /percorso/del/file/da/leggere" For Read As "Osservatore"
 
End


Public Sub Osservatore_Read()
 
  Dim s As String
 
    Read #pr, s, -256
   
    TextArea1.Text &= s
 
End




La questione da te posta si complica ulteriormente, se si tratta di recuparare da console messaggi da te non previsti (per esempio avvisi vari ed altro).


Altro puoi trovarlo facendo una ricerca sul forum immettendo la parola "console".
Intanto ti segnalo questo:
http://www.gambas-it.org/smf/index.php?topic=297.0
« Ultima modifica: 07 Gennaio 2024, 14:57:21 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline elia

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re: La gambas-console
« Risposta #2 il: 30 Maggio 2015, 20:31:41 »
GRAZIE 8)
CIAO