Differenze tra le versioni di "Copiare in una cartella un programma.gambas contenuto in un altro programma.gambas"

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 17: Riga 17:
  
 
====Copiare, rendere eseguibile ed eseguire un programma====
 
====Copiare, rendere eseguibile ed eseguire un programma====
Vediamo di seguito una dimostrazione più completa per copiare - per esempio - un programma.gambas secondario da un progetto.gambas principale, renderlo poi eseguibile, cambiandogli i permessi, ed infine eseguire il programma.:
+
Vediamo di seguito una dimostrazione più completa per copiare - per esempio - un programma.gambas secondario da un altro programma.gambas principale, renderlo poi eseguibile, cambiandogli i permessi, ed infine eseguire il programma.:
 
   '''Public''' Sub Button1_Click()
 
   '''Public''' Sub Button1_Click()
 
   
 
   
Riga 28: Riga 28:
 
    
 
    
 
  <FONT color=#006400>' ''Si procede a modificare i permessi del programma, affinché possa essere eseguito:''</font>
 
  <FONT color=#006400>' ''Si procede a modificare i permessi del programma, affinché possa essere eseguito:''</font>
   <FONT color=#006400>Chmod</font> "/tmp/programma.gambas" To "r-xr-xr-x"
+
   <FONT color=#B22222>Chmod</font> "/tmp/programma.gambas" To "r-xr-xr-x"
 
    
 
    
   Do
+
   Repeat
 
  <FONT color=#006400>' ''Fintanto che non sono cambiati i permessi del programma, si esegue il ciclo:''</font>
 
  <FONT color=#006400>' ''Fintanto che non sono cambiati i permessi del programma, si esegue il ciclo:''</font>
 
     Wait 0.01
 
     Wait 0.01
   Loop Until Stat("/tmp/programma.gambas").Auth = "r-xr-xr-x"
+
   Until Stat("/tmp/programma.gambas").Auth = "r-xr-xr-x"
 
   
 
   
 
  <FONT color=#006400>' ''Viene infine lanciato il programma:''</font>
 
  <FONT color=#006400>' ''Viene infine lanciato il programma:''</font>

Versione attuale delle 13:12, 20 ago 2022

E' possibile inserire in un programma.gambas un altro programma.gambas, e successivamente far copiare quest'ultimo in una qualsiasi directory perché sia avviabile.

Il programma.gambas dovrà essere posto nella cartella "Progetto" presente nella TreeView dell'Ide dove sono elencate Cartelle e sorgenti del programma.

Il problema che si pone è quello che, una volta copiato, il programma.gambas perde il permesso per essere eseguito come programma. Per far riacquistare tale permesso al programma.gambas copiato, bisognerà lanciare la funzione Chmod accompagnata dalla modalità rwxr-x---, capace di riattribuire quel permesso al programma.

Esempio:

Public Sub Button1_Click()

  Copy Application.Path &/ "nome_programma.gambas" To "/tmp/nome_programma.gambas"

  Chmod "/tmp/nome_programma.gambas" To "rwxr-x---"

End


Copiare, rendere eseguibile ed eseguire un programma

Vediamo di seguito una dimostrazione più completa per copiare - per esempio - un programma.gambas secondario da un altro programma.gambas principale, renderlo poi eseguibile, cambiandogli i permessi, ed infine eseguire il programma.:

 Public Sub Button1_Click()

  If Exist("/tmp/programma.gambas") then
    Kill "/tmp/programma.gambas"
  Else
' Si provvede a copiare il file del programma dalla cartella del progetto in un'altra cartella qualsiasi:
    Copy Application.Path &/ "programma.gambas" To "/tmp/programma.gambas"
  Endif
 
' Si procede a modificare i permessi del programma, affinché possa essere eseguito:
  Chmod "/tmp/programma.gambas" To "r-xr-xr-x"
 
  Repeat
' Fintanto che non sono cambiati i permessi del programma, si esegue il ciclo:
    Wait 0.01
  Until Stat("/tmp/programma.gambas").Auth = "r-xr-xr-x"

' Viene infine lanciato il programma:
  Shell "/tmp/programma.gambas"

End