Lecture de la ligne de commande en Ada

De Ensiwiki
Aller à : navigation, rechercher

On peut récupérer en Ada la ligne de commande utilisée (typiquement sous bash) pour lancer le programme. Ce mécanisme de ligne de commande permet de passer très simplement des arguments au programme au moment de son lancement, sous la forme de chaînes de caractères. Il faut pour cela utiliser le paquetage Ada.Command_Line de la librairie standard Ada.

Interface du paquetage Ada.Command_Line

function Command_Name return String;
-- retourne le nom du programme invoqué sur la ligne de commande

function Argument_Count return Natural;
-- retourne le nombre d'argument du programme

function Argument (Number : in Positive) return String;
-- requiert Number <= Argument_Count
-- retourne le "Number"-ième argument dans la ligne de commande.

Exemple

-- programme pour tester le comportement de Ada.Command_Line

with Ada.Text_Io ; use Ada.Text_Io ;
with Ada.Command_Line; use  Ada.Command_Line;

procedure TestCommandLine is
begin
   Put_Line("Nom du programme: " & Command_Name) ;
   for I in 1..Argument_Count loop
      Put_Line("Argument" & Natural'Image(I) & ": " & Argument(I)) ;
   end loop ;
end ;

Par exemple, le source du programme ci-dessus doit s'appeler en principe testcommandline.adb et va donner lieu à un programme exécutable appelé testcommandline. A l'exécution de ce programme, vous devez obtenir les comportements suivants:

  • La ligne de commande
 ./testcommandline

provoque l'affichage

 Nom du programme: ./testcommandline
  • La ligne de commande
  ./testcommandline abc

provoque l'affichage

 Nom du programme: ./testcommandline
 Argument 1: abc
  • La ligne de commande
 ./testcommandline abc "une chaine" 123 "X/Y" ""

provoque l'affichage

 Nom du programme: ./testcommandline
 Argument 1: abc
 Argument 2: une chaine
 Argument 3: 123
 Argument 4: X/Y
 Argument 5: