Differenze tra le versioni di "Ricevere dati da un programma esterno mediante un file"
Riga 4: | Riga 4: | ||
===Esempio di comunicazione fra due programmi=== | ===Esempio di comunicazione fra due programmi=== | ||
− | Mostriamo un esempio pratico, nel quale anche il programma esterno è scritto in Gambas. Esso creerà il file in comune e vi scriverà dei dati, in questo caso l'orario ogni secondo | + | Mostriamo un esempio pratico, nel quale anche il programma esterno è scritto in Gambas. Esso creerà il file in comune e vi scriverà dei dati, in questo caso l'orario ogni secondo. Il nostro programma Gambas leggerà il file in comune e raccoglierà i dati appena scritti. |
Public Sub Form_Open() | Public Sub Form_Open() | ||
Versione delle 19:53, 4 dic 2023
Un programma Gambas può comunicare e ricevere dati da un altro programma, scritto in Gambas o in altro linguaggio, usando in comune un file.
In particolare consideriamo qui il caso in cui il programma esterno scrive dei dati nel file e il nostro programma Gambas va a leggere il file subito dopo, per raccogliere e utilizzare quei dati.
Esempio di comunicazione fra due programmi
Mostriamo un esempio pratico, nel quale anche il programma esterno è scritto in Gambas. Esso creerà il file in comune e vi scriverà dei dati, in questo caso l'orario ogni secondo. Il nostro programma Gambas leggerà il file in comune e raccoglierà i dati appena scritti.
Public Sub Form_Open() Dim fl As File fl = Open "/tmp/file_in_comune" For Write Create Do Write #fl, Str(Time) Wait 1 Loop End
Il nostro programma Gambas, invece, aprirà il file in comune e lo porrà sotto osservazione con la parola-chieve "WATCH". Potrà così leggere nel file ogni qual volta viene scritto qualcosa (in questo esempio l'orario):
Private fl As File Public Sub Form_Open() fl = Open "/tmp/file_in_comune" For Read Watch End Public Sub File_Read() Dim s As String Read #fl, s, 8 Print s End
Se il programma esterno, scritto in altro linguaggio, utilizzerà un file - sia pur un file-device - leggibile dal nostro programma Gambas, il codice i quest'ultimo sostanzialmente non cambia.