-------------------------------------------------------------------- -- But : Programme test pour le module generique File_G -- Auteur : Normand Seguin -- Date : Aout 2001 -------------------------------------------------------------------- WITH File_G; -- Importer le module File_G WITH Ada.Text_IO; Procedure Testfile IS PROCEDURE AfficherCaractere(c : Character) IS BEGIN Ada.Text_IO.Put(c); END AfficherCaractere; -- ** Puisqu'on a ajouté des paramètres génériques au package, on doit modifier l'instanciation du package en conséquence. ** -- ** Maintenant, le second paramètre est une procédure de callback pour afficher un élément, et le troisième est pour ** -- **déterminer si on affiche ou non la file après une modification (enfiler, défiler). ** PACKAGE File_Car IS NEW File_G(Character, AfficherCaractere, True, 50); Element : Character; -- Un element de la file LaFile : File_Car.File; -- Variable de type file copie : File_Car.File; -- ** Une autre variable de type file qui sera une copie de 'LaFile' ** BEGIN File_Car.Creer_File (LaFile); -- Creer la file "LaFile" File_Car.Creer_File(copie); -- Créer la file "copie" Ada.Text_IO.Put_Line("Apres creation, files egales : " & Boolean'Image(File_Car.Comparer_Files(LaFile, copie))); File_Car.Enfiler (LaFile, 'A'); Ada.Text_IO.New_line; File_Car.Enfiler (LaFile, 'B'); Ada.Text_IO.New_line; File_Car.Enfiler (LaFile, 'C'); Ada.Text_IO.New_line; File_Car.Enfiler (LaFile, 'D'); Ada.Text_IO.New_line; Ada.Text_IO.Put_Line("Apres 'Enfiler' ABCD dans LaFile, files egales : " & Boolean'Image(File_Car.Comparer_Files(LaFile, copie))); File_Car.Copier_File(LaFile, copie); Ada.Text_IO.Put_Line("Apres 'Copier_File', files egales : " & Boolean'Image(File_Car.Comparer_Files(LaFile, copie))); WHILE NOT File_Car.File_Vide(LaFile) LOOP Ada.Text_IO.Put("LaFile apres 'Defiler' : "); File_Car.Defiler (LaFile, Element); Ada.Text_IO.New_line; Ada.Text_IO.Put_Line("Apres 'Defiler' de LaFile, files egales : " & Boolean'Image(File_Car.Comparer_Files(LaFile, copie))); Ada.Text_IO.Put("Copie apres 'Defiler': "); File_Car.Defiler(copie, Element); Ada.Text_IO.New_Line; Ada.Text_IO.Put_Line("Apres 'Defiler' de copie, files egales : " & Boolean'Image(File_Car.Comparer_Files(LaFile, copie))); END LOOP; File_Car.Detruire_File (LaFile); File_Car.Detruire_File(copie); Ada.Text_IO.Skip_line; END Testfile;