Un paio di post fa ho spiegato molto sinteticamente come creare applicazioni in C che permettessero il passaggio al programma di argomenti da riga di comando.
Ora vedremo come eseguire la stessa procedura ma con codice scritto in Gambas. Anche se la potenza di questo linguaggio si basa sulla facilità con cui si possono scrivere software con interfaccia grafica, alle volte può essere molto più utile scrivere codici di programmi per terminale.
Proprio come accade per il linguaggio C, anche con il gambero è possibile passare argomenti che verranno poi salvati in un vettore di tipo stringa dove ogni elemento corrisponde ad un parametro.
Avviamo un nuovo progetto e selezioniamo "Applicazione a riga di comando". Fatto ciò si presenterà il solito IDE ma con la mancanza dei tipici oggetti grafici.
Si nota subito la mancanza del form FMain sostituito dal modulo MMain.
Spostiamoci nell'editor del codice e scriviamo:
PRINT "Nome programma: " & Application.Args[0]
PRINT "Argomenti passati: " & Application.Args.Count
PRINT "Primo argomento: " & Application.Args[1]
PRINT "Secondo argomento: " & Application.Args[2]
Analizziamo gli elementi fondamentali del codice. L'uso di Application.Args[x] permette di controllare il contenuto dell'array degli argomenti passati. Bisogna tenere presente che il primo elemento del vettore Application.Args[0] contiene sempre il nome del programma stesso. Proseguendo così si trovano il primo argomento passato (Application.Args[1]), il secondo (Application.Args[2]), ecc.....Di notevole importanza è anche l'elemento Application.Args.Count che altri non è che una variabile di tipo integer contenete il numero degli elementi passati al programma. Specifico che se al programma vengono passati 3 elementi Application.Args.Count varrà 4 poichè in esso è conteggiato anche il nome del programma stesso.
Esso inoltre è importanti per scrivere programmi dei quali non si conosce preventivamente il numero di argomenti passati. Grazia a Application.Args.Count, infatti, è possibile gestire un ciclo che legga tutti i dati anche senza conoscerne il numero preventivamente.
Compilando e lanciando il codice precedente e scrivendo nel terminale ad esempio:
./mio_programma uno due Ci verrà restituito:Nome programma: mio_programma
Argomenti passati 3
Primo argomento: uno
Secondo argomento: due
Le potenzialità di questo codice sono molte ed è possibile creare programmi molto versatili usabili comodamente da terminale.Inoltre voglio precisare che questo tipo di gestione può essere utilizzata anche con programmi ad interfaccia grafica. Infatti è possibile lanciare questi programmi da terminale passando eventuali argomenti magari per settare delle impostazioni iniziali.