Lire dans un fichier texte - Ada - Programmation
Marsh Posté le 25-02-2005 à 16:47:23
teddy_63 a écrit : Bonjour a tous |
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.
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;