B
    ]QJ^                 @   sd   d d Z dd Zdd Zdd Zi Ze eeedZed	 Zx ed
kr^ee e edZq@W dS )c             C   sF   t d}x8|dkr@tt d}tt d}||f| |< t d}q
W dS )u+  
    ajouter(dict table) --> None.
    Ajoute une nouvelle entrée à la base de données <table>
    au format {Nom1: (Age1, Taille1), Nom2: (Age2, Taille2),...}
    aussi longtemps que l'utilisateur le désire. Les données Nom, Age et Taille
    sont récupérées par la fonction elle-meme.
    z@Entrez le nom d'une nouvelle personne ou <Enter> pour terminer:  u   Entrez son âge (en années): u   Entrez sa taille (en mètres): N)inputintfloat)tablenomagetaille r	   o/Users/jerome/SynologyDrive/College/Informatique/OCI/1_Site/1_Programmation/6_Fichiers/Exercices/Ex6_9/ex6_9.pyajouter
   s    	
r   c             C   s^   t d}xP|dkrX| |d}|rF|d }|d }td||| ntd t d}q
W dS )	u  
    consulter(dict table) --> None.
    Aussi longtemps que l'utilisateur le désire, cette fonction
    extrait un élément de la base de données <table> à
    partir de sa clef et affiche le résultat au format:
    
    Nom: {nomPersonne} - age: {agePersonne} ans - taille: {taillePersonne} m.
    
    Si la requete est non fructueuse, la fonction retourne le messsage:
    
    *** Nom inconnu! ***
    z7Entrez le nom d'une personne ou <Enter> pour terminer: r   F       u+   Nom: {} - âge: {} ans - taille: {:3.2f} m.z*** Nom inconnu ! ***N)r   getprintformat)r   r   Zcoupler   r   r	   r	   r
   	consulter   s    
r   c             C   sj   t d}t|ddd}xFt|  D ]6\}}||d t|d  d t|d  d	  q$W |  d
S )u   
    sauvegarder(dict table) --> None.
    Sauvegarde les éléments de la base de données <table>
    dans un fichier au format <Nom@Age#Taille>.
    z(Entrez le nom du fichier de sauvegarde: wzUtf-8)encoding@r   #r   
N)r   openlistitemswritestrclose)r   
nomFichierfichierclevaleurr	   r	   r
   sauvegarder:   s
    2r!   c             C   s   d}t d}x<|rHyt|ddd}W n   td t d}Y qX d}qW | }x^|d	kr|d
}|d }|d }|d}t|d t|d  }	}
|	|
f| |< | }qTW dS )u   
    remplir(dict table) --> None.
    Remplit la base de données <table>
    à partir de données situées dans un fichier externe.
    r   z(Entrez le nom du fichier de sauvegarde: rzUtf-8)r   z*** Fichier inexistant ***z!Entrez un nom de fichier valide: r   r   r   r   N)r   r   r   readlinesplitr   r   )r   flagr   r   Zligneelementr   r    datar   r   r	   r	   r
   remplirP   s$    


r(   )ACSRu  Choisissez:
(R)écupérer une base de données préexistante sauvegardée dans un fichier
(A)jouter des données à la base de données courante
(C)onsulter la base de données courante
(S)auvegarder la base de données courante dans un fichier
(T)erminer: TzNChoisissez: (A)jouter - (C)onsulter - (S)auvegarder - (R)emplir - (T)erminer: N)	r   r   r!   r(   r   Z	operationr   upperactionr	   r	   r	   r
   <module>
   s   &

