Lire dans un fichier texte

Lire dans un fichier texte - Ada - Programmation

Marsh Posté le 28-11-2004 à 01:26:19    

Bonjour a tous
Je recherche la maniere de lire mon fichier texte pour en récupérer les données et inscrire les valeurs dans un autre tableau chargé en mémoire.
 
Mon fichier texte se présente sous la forme d une matrice contenant des informations de type Float .
 
J'ai bien pensé récupérer ses informations en utilisant un Unbounded_String mais étant novice en la matière je ne m en sors pas ..
 
Je vous laisse le début du code que j ai codé en espérant que vous saurez me venir en aide .. Merci d avance ...
 
with text_io,Ada.Strings.Unbounded;
 use text_io,Ada.Strings.Unbounded;
 
 
 
 procedure trajet is
   
 type t_distance is digits 5 range 0.01..200.0;
 
 type t_matrice is array (positive range <>, positive range <> ) of unbounded_string;
 
 type t_liste_ville is array (positive range <> ) of unbounded_string;
 
 
 type t_graphe ( Taille : positive) is
  record
   Matrice : t_matrice ( 1..Taille, 1..Taille);
   liste : t_liste_ville (1..Taille);
  end record;
 
 procedure lire_texte (un_graphe : out t_graphe) is
  fichier : file_type;
 
   
 
 begin
  open(fichier,out_file,"e:\test_ada\plus_court.txt" );
 
    for I in 1..Un_graphe.Taille loop
            for J in 1..Un_graphe.Taille loop
            get(Fichier,t_distance'value(un_graphe.matrice(I,J))); -- c'est ici que ca semble coincer !!
             end loop;  
          end loop;
 
       Close(Fichier);
 end lire_texte;
 
 procedure Afficher (Un_graphe : in T_graphe) is
   
     package p_distance is new Float_io (t_distance);
     use p_distance;
     
 begin
 
     for I in 1..Un_graphe.Taille loop
         for J in 1..Un_graphe.Taille loop
         put(t_distance'image(Un_graphe.Matrice(I,J)));
         end loop;
         New_Line;
     end loop;
     
  end afficher;
 
 
 distancier : t_graphe(467);  
 
 
 begin
 
  lire_texte(distancier);
 
  Afficher(distancier);
 
 
 end trajet;

Reply

Marsh Posté le 28-11-2004 à 01:26:19   

Reply

Marsh Posté le 25-02-2005 à 16:47:23    

teddy_63 a écrit :

Bonjour a tous
 
 procedure lire_texte (un_graphe : out t_graphe) is
  fichier : file_type;
 
   
 
 begin
  open(fichier,out_file,"e:\test_ada\plus_court.txt" );
 
    for I in 1..Un_graphe.Taille loop
            for J in 1..Un_graphe.Taille loop
            get(Fichier,t_distance'value(un_graphe.matrice(I,J))); -- c'est ici que ca semble coincer !!
             end loop;  
          end loop;
 
       Close(Fichier);
 end lire_texte;
 
 procedure Afficher (Un_graphe : in T_graphe) is
   
     package p_distance is new Float_io (t_distance);
     use p_distance;
     
 begin
 
     for I in 1..Un_graphe.Taille loop
         for J in 1..Un_graphe.Taille loop
         put(t_distance'image(Un_graphe.Matrice(I,J)));
         end loop;
         New_Line;
     end loop;
     
  end afficher;
 
 
 distancier : t_graphe(467);  
 
 
 begin
 
  lire_texte(distancier);
 
  Afficher(distancier);
 
 
 end trajet;


Salut à toi.
Moi aussi je débute en Ada, bon déjà, je pense que la façon dont tu ouvres le fichier n'est pas la bonne comme ça, ce serait mieux
 
TEXT_IO.OPEN(File=>fichier,Mode=>TEXT_IO.IN_FILE,Name=>"e:\test_ada\plus_court.txt" );
 
ce serait d'une part plus propre et surtout si tu veux lire dedans, ben c en IN_FILE qu'il fo l'ouvrir.
 
ensuite je ne sais pas comment est structuré ton fichier mais get_line() est plus pratique, à part si tout est à la suite.
 
Voilà...
 
Sur ce bon courage.


Message édité par babar9160 le 09-03-2005 à 11:03:03
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed