Il y a un tableau que nous trimballons depuis notre premier programme Vala sans jamais l'avoir utilisé... vous ne voyez pas lequel ? Regardez mieux la ligne
public static int main (string[] args)
, à quoi peut bien servir
args ?
C'est en fait un tableau particulier, défini au lancement de votre programme, qui sert à récupérer les différents arguments de la ligne de commandes. Vous savez certainement que, bien avant de disposer d'interfaces graphiques, les ordinateurs proposaient une ligne de commandes, c'est-à-dire une interface en mode texte où l'utilisateur devait taper les actions à réaliser.
Aujourd'hui, l'utilisateur lambda ne se sert plus trop (voire plus du tout) de cette interface textuelle, mais, comme nous qui sommes curieux, elle n'a pas de raison de nous faire peur. Ainsi, quand nous tapons une commande (par exemple
echo Bonjour les amis), un certain programme est appelé (
echo), et il reçoit des arguments, comme une fonction, qu'il utilise à sa façon (en l'occurrence, les afficher).
Sous Windows comme sous Linux, vous disposez d'une ligne de commande. Elle peut être un moyen très efficace de
scripter votre système, c'est-à-dire d'enregistrer dans un fichier une série d'actions qui vous aident à automatiser votre environnement (par exemple, télécharger automatiquement un fichier distant mis à jour périodiquement). Nous allons nous contenter ici de voir comment utiliser les arguments.
Comme la méthode
main, qui correspond à la fonction principale de notre programme, reçoit un tableau de chaînes en argument, nous pouvons en afficher les éléments ligne par ligne pour voir comment il est construit :
Code : Vala 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | public class Main
{
public static int main (string[] args)
{
int i;
for (i = 0; i < args.length; i++)
{
stdout.printf("Argument %d : %s\n", i, args[i]);
}
return 0;
}
}
|
Exécutons-le maintenant en ligne de commande : même si vous utilisez un IDE, laissez-le pour une fois de côté et aller chercher votre exécutable à la main pour le faire glisser dans une console DOS/dans un terminal, puis appuyez sur entrée. Supposons que vous l'ayez appelé "Programme.exe", vous verrez alors
Code : Console | Argument 0 : Programme.exe |
En effet, le premier argument reçu par notre programme est son nom. Bon, pourquoi pas, essayons maintenant d'en faire un peu plus, en ajoutant des mots sur la ligne de commande après le nom de l'exécutable : par exemple, si nous entrons
Programme.exe Bonjour les amis
Code : Console | Argument 0 : Programme.exe
Argument 1 : Bonjour
Argument 2 : les
Argument 3 : amis |
Et si nous voulons que "Bonjour les amis" ne forme qu'un seul argument ? Il suffit de mettre des guillemets, en tapant
Programme.exe "Bonjour les amis" :
Code : Console | Argument 0 : Programme.exe
Argument 1 : Bonjour les amis |
Nous construirons bientôt des programmes graphiques, qui se passent de la ligne de commande et sont certainement moins déroutants pour l'utilisateur. Mais il faut bien comprendre que, pour nous programmeurs, cette interface textuelle est une façon simple de tester des choses ou de réaliser de petits utilitaires.
Par exemple, sous Unix, on trouve généralement les programmes curl ou wget qui permettent de récupérer facilement des pages web. Utilisés conjointement avec une boucle for (dont disposent les lignes de commandes DOS aussi bien que Unix), cela peut permettre de récupérer rapidement un certain nombre de pages (plus facilement qu'en devant cliquer sur Enregistrer sous à chaque fois). Nous verrons qu'un tel programme n'est pas difficile à réaliser en Vala.
Une dernière chose : en ligne de commande, vous pouvez envoyer la sortie (c'est-à-dire l'affichage) de votre programme dans un fichier, en écrivant
programme arguments > sortie.txt. Mais attention, en faisant ainsi vous effacerez le contenu précédent de "sortie.txt". Pour ajouter des informations à la fin plutôt que d'effacer ce qui s'y trouve, utilisez ">>".