with Ada.Text_Io; use Ada.Text_Io; with Contact_Cle; use Contact_Cle; with Arbre_Bin_Recherche_Cle_G; procedure Tester_Abr_Contacts is -- Instanciation du paquetage package Arbre_Contacts is new Arbre_Bin_Recherche_Cle_G(Un_Contact, Cle_contact, Cle, "<", "=", Liberer_Contact, Contact_To_string); use Arbre_Contacts; -- Variables pour la lecture du fichier annuaire Fichier : File_Type; Chaine, Ligne : String(1..80); Len, last : Integer := 0; AB : Arbre; C : Un_Contact; Prenom, Nom, Ville, Specia, Telephone, Fin, I : Integer := 0; begin ----------------------------------------------------------- -- Utilisation d'annuaires ----------------------------------------------------------- -- Entourloupe pour avoir un nom de fichier contraint, saisi par l'utilisateur et de bonne taille Put_Line("Lecture d'un fichier de contact, veillez saisir le nom du fichier : "); Get_Line(Chaine, Len); declare Nom_Fichier : String(Chaine'First..Len) := Chaine(Chaine'First..Len); begin open(Fichier, in_File, "./jeux_de_donnees/" & Nom_Fichier); while not End_Of_File(Fichier) loop Get_Line (Fichier, Ligne , Len ) ; Put_Line ( "Ajouté à l'arbre: " & Ligne(1..Len)); Prenom := 1; Nom := 0; Ville := 0; Specia := 0; Telephone := 0; Fin := 0; I := 1; while Telephone = 0 loop if Ligne(I) = ' ' then if Nom = 0 then Nom := I; elsif Ville = 0 then Ville := I; elsif Specia = 0 then Specia := I; elsif Telephone = 0 then Telephone := I; Fin := Telephone + 10; end if; end if; I := I + 1; end loop; C := Creer_Contact(Ligne(Prenom..Nom-1), Ligne(Nom+1..Ville-1), Ligne(Ville+1..Specia-1), Ligne(Specia+1..Telephone-1), Ligne(Telephone+1..Fin-1) & " "); Inserer(C, AB); end loop; Close(Fichier); Put_Line(Arbre_To_String(AB)); end; end Tester_Abr_Contacts;