Autore Topic: Interagire con il terminale linux  (Letto 8715 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #30 il: 25 Dicembre 2013, 18:03:27 »
....è come se non leggesse la a e la b. Forse sbaglio a mettere questo codice in questo modo.

Si tratta di immettere correttamente le due variabili a e b.

Prova così:
Codice: gambas [Seleziona]

Shell "units " & a & b To risultato
« 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 aleandro

  • Gambero
  • **
  • Post: 72
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #31 il: 25 Dicembre 2013, 18:19:10 »
Codice: [Seleziona]
Public Sub Form_Open()  
  End
   
   
    Public Sub Button1_Click()
     
     Dim a As String
     Dim b As String
     Dim resultat As String 
 
     a = TextArea1.Text
     b = TextArea2.Text
     Shell "units" & a & b To resultat   
     TextArea3.Text = resultat
     
    End

Non le legge neppure in questo modo. Strano. Forse dovrebbero rientrare tra le virgolette come ho fatto precedentemnte. Possibile che non ci sia documentazione?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #32 il: 25 Dicembre 2013, 18:22:31 »
Forse dovrebbero rientrare tra le virgolette come ho fatto precedentemnte.

Non credo, poiché facendo questo test:
Codice: gambas [Seleziona]

Public Sub Main()

 Dim s As String = "/percorso/di/un/file.wav"

  Shell "aplay s"


non funziona.

Invece, così:
Codice: gambas [Seleziona]

Public Sub Main()

 Dim s As String = "/percorso/di/un/file.wav"

  Shell "aplay " & s


funziona.
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #33 il: 25 Dicembre 2013, 18:42:24 »
...prova a distaccare in modo esplicito le due variabili; o con una virgola:
Codice: gambas [Seleziona]
Shell "units " & a & "," & b


oppure con uno spazio:
Codice: gambas [Seleziona]
Shell "units " & a & " " & b


...o con una virgola ed uno spazio:
Codice: gambas [Seleziona]
Shell "units " & a & ", " & b


« 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 aleandro

  • Gambero
  • **
  • Post: 72
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #34 il: 25 Dicembre 2013, 18:43:50 »
Codice: [Seleziona]
Public Sub Button1_Click() 
    
     Dim a As String
     Dim b As String
     Dim resultat As String  
     'Print #pr, TextArea1.Text  
    ' Print #pr, TextArea2.Text
     a = TextArea1.Text
     b = TextArea2.Text
     Shell "units " & a To resultat    
     TextArea3.Text = resultat
    
    End

Legge solo la a ma la variabile successiva non "gli entra".

Edit: ora provo come hai riportato sopra ed incrocio le dita.

Offline aleandro

  • Gambero
  • **
  • Post: 72
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #35 il: 25 Dicembre 2013, 18:47:02 »
 ;D

bingo

Codice: [Seleziona]
Public Sub Form_Open()  
  End
    
    
    Public Sub Button1_Click()
    
     Dim a As String
     Dim b As String
     Dim resultat As String  
     'Print #pr, TextArea1.Text  
    ' Print #pr, TextArea2.Text
     a = TextArea1.Text
     b = TextArea2.Text
     Shell "units " & a & " " & b To resultat    
     TextArea3.Text = resultat
    
    End

Ora perfeziono il codice con un menu a tendina e le unità di misura, un help e una breve guida. Dopo dovrebbe essere pronto. Si aprono scenari sconvolgenti per l'uso della shell di linux e di bash (la mia passione). Posso aprire un topic nel forum di ubuntu per perfezionare il tutto ovviamente facendo riferimento a questa discussione?

Intanto buon Natale.
« Ultima modifica: 25 Dicembre 2013, 18:50:58 da aleandro »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #36 il: 25 Dicembre 2013, 19:06:34 »
bingo


Sì, dunque possiamo dire che per passare due o più variabili come argomenti, bisogna tenere presente della modalità prevista dal comando specifico.

Ad esempio, ho fatto la prova con il compilatore gcc. Funziona, come per units, così:
Codice: gambas [Seleziona]

Public Sub Main()

  Dim s1, s2 As String
  
    s1 = "/percorso/del/file/C/compilato"
    s2 = "/percorso/del/file.c/da/compilare"
    
    
      Shell "gcc -o " & s1 & " " & s2

End

appunto con lo spazio che separa le due variabili di tipo Stringa.


Caso diverso quando il comando prevede che gli argomenti siano separati da virgole.
Vediamo l'esempio del comando wmctrl utilizzato per spostare una finestra sul desktop.
Una linea di comando come questa:
Codice: gambas [Seleziona]
Shell "wmctrl -r nome_finestra_da_spostare -e 0,500,800,600,300"


utilizzando le variabili funziona così:
Codice: gambas [Seleziona]
Public Sub Main()

  Dim s1, s2, s3 As String
  
    s1 = "0"
    s2 = "500"
    s3 = "800"
      
   Shell "wmctrl -r nome_finestra_da_spostare -e " & s1 & "," & s2 & "," & s3 & ",600,300"

End
« Ultima modifica: 26 Dicembre 2013, 01:09:30 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 aleandro

  • Gambero
  • **
  • Post: 72
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #37 il: 25 Dicembre 2013, 19:08:16 »
Certo che questo gambas è davvero potente e formidabile. Manca della documentazione ma provvederò a crearla e contribuire di volta in volta.

Grazie e a presto qui sul forum.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #38 il: 25 Dicembre 2013, 19:11:18 »
Manca della documentazione ma provvederò a crearla e contribuire di volta in volta.


Puoi dare un grosso contributo nella nostra WIKI:
http://www.gambas-it.org/smf/index.php?topic=2680.0
« 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 aleandro

  • Gambero
  • **
  • Post: 72
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #39 il: 26 Dicembre 2013, 00:44:19 »
Codice: [Seleziona]
 Public Sub Button1_Click() 
    
     Dim a As String
     Dim b As String
     Dim c As String
     Dim d As String
     Dim e As String
     Dim f As String
     Dim resultat As String
    
     a = TextArea1.Text
     b = TextArea2.Text
     c = a & b
     d = TextArea3.Text
     e = TextArea4.Text
     f = d & e
    
     Shell "units " & c & " " & f To resultat  
     TextArea5.Text = resultat
    
    End
  

Creo passo per passo le tendine per le unità di misura. Vado avanti in questa discussione così si vedono i risultati. Le unità di misura aggiornate si trovano in un file installato su ubuntu che allego.


Codice riepilogativo:
Codice: [Seleziona]
Public Sub Form_Open()  
  End
   
   
    Public Sub Button1_Click()
     
     Dim a As String
     Dim b As String
     Dim c As String
     Dim d As String
     Dim e As String
     Dim f As String
     Dim g As String
     Dim h As String
     Dim resultat As String
     
     a = TextArea1.Text
     b = ComboBox1.Text
     c = ComboBox2.Text
     d = a & b & c
     e = TextArea2.Text
     f = ComboBox3.Text
     g = ComboBox4.Text
     h = e & f & g
     
     Shell "units -v " & d & " " & h To resultat   
     TextArea3.Text = resultat
     
    End
« Ultima modifica: 26 Dicembre 2013, 14:49:22 da aleandro »

Offline aleandro

  • Gambero
  • **
  • Post: 72
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #40 il: 30 Dicembre 2013, 23:30:50 »
Prima beta allegata.

Tutto funziona mancano solo le opzioni per i calcoli tra le unità di misura e altre opzioni meno importanti di units che comunque implementerò poco alla volta nelle prossime versioni.

Invece trovo decisamente ostiche tre parti:

  • vorrei un tasto che possa spedirmi le mail; ho provato Desktop.Sendmail ma non ho capito come si usa
  • vorrei poter stampare i risultati; ho provato con l'icona printer e con mezze soluzioni trovate sul forum ma non ho capito una mazza
  • vorrei che tutti i risultati restassero archiviati o visualizzabili nell'area risultati


Delle tre la più urgente è quella della stampa. Per me rimane un mistero.
« Ultima modifica: 31 Dicembre 2013, 00:53:48 da aleandro »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #41 il: 30 Dicembre 2013, 23:46:45 »
vorrei poter stampare i risultati; ho provato con l'icona printer e con mezze soluzioni trovate sul forum ma non ho capito una mazza

Delle tre la più urgente è quella della stampa. Per me rimane un mistero.

Proviamo con le pagine della WIKI:
http://www.gambas-it.org/wiki/index.php?title=Printer
http://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Stampa
« 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 aleandro

  • Gambero
  • **
  • Post: 72
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #42 il: 31 Dicembre 2013, 00:31:56 »
Se metto printer sul form non compare neppure l'icona della stampa sul form.

Forse non ho abilitato alcuni componenti?
« Ultima modifica: 31 Dicembre 2013, 00:43:54 da aleandro »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #43 il: 31 Dicembre 2013, 00:56:36 »
Se metto printer sul form non compare neppure l'icona della stampa sul form.
E' alquanto strano !  ???


Forse non ho abilitato alcuni componenti?
Non sono necessari particolari componenti.


Prova a creare l'oggetto Printer da codice .
« 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 aleandro

  • Gambero
  • **
  • Post: 72
    • Mostra profilo
Re: Interagire con il terminale linux
« Risposta #44 il: 31 Dicembre 2013, 01:01:05 »
Citazione
E' alquanto strano !

Strano ma vero. Non compare assolutamente nulla. A dire il vero non è mai comparso. Eppure ho inserito la classe printer dal menu degli speciali in basso a destra.