logo

Visualizzazione post con etichetta gambas2. Mostra tutti i post
Visualizzazione post con etichetta gambas2. Mostra tutti i post

mercoledì 20 ottobre 2010

dare un comando al pulsante

EXEC
[ Processo = ] EXEC Comando [ WAIT ] [ FOR { { READ | INPUT } | 
{ WRITE | OUTPUT } } ] [ AS Nome ]

EXEC Comando TO Variabile
Esegue un comando. Per gestire il comando viene creato un oggetto Process interno.
Il comando deve essere specificato come un array di stringhe contenente almeno un elemento. Il primo elemento di questo array è il nome del comando, gli altri sono parametri opzionali.

  • Se WAIT è specificato, allora l'interprete attende la fine del comando. Altrimenti, il comando viene eseguito in background.
  • Se FOR è specificato, allora l'input-output del comando viene rediretto cosicché il tuo programma possa intercettarli:
    • Se WRITE è specificato, puoi mandare dati allo standard input del comando usando l'oggetto Process con istruzioni d'output comuni: PRINT, WRITE, ... . Nota che necessiti di un riferimento all'oggetto Process per questo.
    • Se READ è specificato, allora verranno generati eventi ogni volta che il comando manda dati al suo stream standard output: l'evento Read viene sollevato quando vengono mandati dati allo stream standard output, e l'evento Error viene sollevato quando vengono mandati dati allo stream standard error. Usa l'oggetto Process con Funzioni di Stream e Input/Output per leggere lo standard output del processo.
Se utilizzi le parole chiave INPUT e OUTPUT invece di READ e WRITE, allora il processo viene eseguito in un terminale virtuale. Questo significa che il processo penserà di essere eseguito dentro un vero terminale. Nome è il nome dell'evento usato dall'oggetto Process. Per default, è "Process".
Puoi avere un riferimento all'oggetto Process interno creato usando un assegnamento.
Se usi la seconda forma, il comando viene eseguito, l'interprete attende la sua fine, e l'output completo del comando viene messo nella stringa specificata.

Esempio

' Ottieni il contenuto della directory
EXEC [ "ls", "-la", "/tmp" ] WAIT

' Metti il contenuto della directory nella stringa
DIM sOutput AS String
EXEC [ "ls", "-la", "/tmp" ] TO sOutput

' Metti il contenuto della directory nella stringa, ma in background

DIM sOutput AS String

' Viene usato un nome di evento specifico
EXEC [ "ls", "-la", "/tmp" ] FOR READ AS "Contenuto"

...

PUBLIC SUB Contenuto_Read()

  DIM sLinea AS String

  READ #LAST, sLinea, -256

  sOutput &= sLinea

END

PUBLIC SUB Contenuto_Kill()

  PRINT sOutput

END

Se vuoi sapere quanti bytes puoi leggere in un gestore di eventi Process_Read, usa la funzione Lof.

Dato che gli argomenti vengono mandati direttamente al processo, non hai bisogno di racchiuderli tra virgolette, come dovresti fare in una shell.
' perl -e 'print while <>;' diventa

EXEC [ "perl", "-e", "print while <>;" ] FOR READ WRITE

Gambas2, l'alternativa libera a Visual Basic per Linux


Gambas (http://gambas.sf.net) è un IDE per lo sviluppo in BASIC, per Linux. L'ambiente ricorda moltissimo il noto Visual Basic, e per molti comandi è compatibile con la sua sintassi, anche se la compatibilità al 100% non è il suo obbiettivo.

Perchè usare Gambas? Con tutti i linguaggi che c'erano su Linux, perchè Gambas? La risposta è molto semplice. Sebbene Linux abbondi di linguaggi di programmazione, non abbonda affatto di ottimi ambienti di sviluppo e di facile uso. Gambas si propone di essere facile da usare e permette anche a chi ha poca esperienza con la programmazione di iniziare a scrivere programmi di una qualche utilità.
Orientato agli oggetti disponibile per piattaforme GNU/Linux ed altri sistemi Unix o assimilati la cui sintassi è basata sul linguaggio BASIC. Gambas indica al contempo sia il linguaggio che l'IDE (Integrated Development Environment), esso stesso scritto in Gambas. L'interprete di Gambas è scritto in C/C++.

Gambas è nato nel 1999 per mano di un programmatore francese di nome Benoît Minisini che voleva realizzare un nuovo linguaggio di programmazione per Linux, facile da apprendere e semplice da utilizzare come il Visual Basic di Microsoft, di cui però non è un clone, come rimarca con decisione il suo autore [1]. Anche se molto spesso si tende ad usare la similitudine con il Visual Basic per spiegare ai profani a cosa più assomiglia Gambas, i punti di contatto sono limitati al linguaggio di base, il BASIC, ma la sintassi dei comandi e la struttura dei programmi è diversa tant'è che un programma dell'uno non può girare sull'altro.

Gambas è free software ed è rilasciato sotto licenza GPL.

Dove trovare Gambas





La documentazione che potete trovare su Gambas è per adesso quasi interamente in inglese (a parte quelle che trovate tradotta su Gambas.it) ma è sicuramente un ottimo punto di partenza per iniziare a studiare il linguaggio:
  • A Beginner Guide To Gambas: si tratta di un manuale in formato PDF di circa 400 pagine dove potrete trovare una panoramica completa di tutto l'ambiente, dei controlli, del linguaggio, affrontando problematiche comuni della programmazione, comprendendo anche la gestione degli errori e la programmazione object-oriented.
  • Wiki ufficiale del progetto Gambas: si tratta della documentazione ufficiale del progetto ed è in formato Wiki, in modo che tutti gli sviluppatori possano di volta in volta dare il proprio contributo.
  • Network Programming with Gambas: Tutorial sulla programmazione Socket tramite Gambas.

Risorse Esterne
fonte: ptlug
Ultima versione stabile: 2.1.7

http://people.freebsd.org/~acm/screen/gambas2-freebsd.png

You get them from the Subversion repository. To get a snapshot of the future 3.0 version, do:
$ mkdir trunk
$ svn checkout https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/trunk/
$ cd trunk
$ ./reconf-all
To get a snapshot of the 2.x development version, do:
$ mkdir 2.0
$ svn checkout https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/branches/2.0
$ cd 2.0
$ ./reconf-all
Do not forget to install automake and autoconf, otherwise the ./reconf-all script will not work.

Stable Version Source Packages (ChangeLog)

Package Version Format
gambas2-2.17.0.tar.bz2 2.17.0 tar.bz2
gambas2-2.16.0.tar.bz2 2.16.0 tar.bz2
gambas2-2.15.2.tar.bz2 2.15.2 tar.bz2
gambas2-2.14.0.tar.bz2 2.14.0 tar.bz2