Lecture et recopie d'une matrice depuis un fichier texte

Lecture et recopie d'une matrice depuis un fichier texte - Ada - Programmation

Marsh Posté le 01-02-2012 à 15:55:39    

Salut à tous,
 
Je cherche à faire (en ADA) une petite procédure qui lit une matrice tapée à la main dans un fichier texte (juste avec des espaces) et qui place les bons paramètres dans mon type Matrice.
Mon programme est ci-après, mais ça ne marche pas j'ai toujours un problème de CONSTRAINT_ERROR à la ligne 18.
Ces quatre lignes (18,19,20,21) sont censées permettre de lire des coefficients à plusieurs chiffres.
 
J'ai l'impression que le problème vient du get_line ou de la comparaison mais je ne comprends pas.
 
Est-ce que quelqu'un pourrait m'aider?
 
Merci
 
 

Code :
  1. procedure Ouv(Nom_Fichier: in String;Mat: Matrice) is
  2.    Fichier   : File_Type;
  3.    Car : String (1 .. 100);
  4.    dernier  : Natural;
  5.   I,J,K:Natural:=1;
  6.    Char: Unbounded_String;
  7. begin
  8.    Open (Fichier,In_File,Nom_fichier ); -- OUVERTURE DU FICHIER
  9.    while not (End_Of_File(Fichier)) loop
  10.       Get_line(Fichier,Car,dernier); -- ON RECUPERE UNE LIGNE POUR LA TRAITER
  11.       K:=1;
  12.       while (K <= dernier) loop
  13.          while (Car(K) /= ' ') loop                                --TANT QU'ON N'A PAS D'ESPACE
  14.            Char:=Char & Car(K);                                  --ON COLLE LE CARACTERE DANS "Char" (TEMPORAIRE)
  15.             K:=K+1;                                                     --CARACTERE SUIVANT
  16.          end loop;
  17.          Mat(I,J):=Integer'value(To_String(Char));
  18.          J:=J+1;                                                     -- COLONNE SUIVANTE
  19.          K:=K+1;                                                     -- CARACTERE SUIVANT
  20.       end loop;
  21.       I:=I+1;                                                           --LIGNE SUIVANTE
  22.       end loop;
  23.    Close (Fichier);
  24. end ouv;

Reply

Marsh Posté le 01-02-2012 à 15:55:39   

Reply

Marsh Posté le 01-02-2012 à 18:03:16    

Bonjour, je suis un poil surpris de voir trois while à la suite pour lite un texte.
Voilà pour le moment, parce que je comprend pas.

Reply

Sujets relatifs:

Leave a Replay

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