John Pok | 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 :
- procedure Ouv(Nom_Fichier: in String;Mat: Matrice) is
- Fichier : File_Type;
- Car : String (1 .. 100);
- dernier : Natural;
- I,J,K:Natural:=1;
- Char: Unbounded_String;
- begin
- Open (Fichier,In_File,Nom_fichier ); -- OUVERTURE DU FICHIER
- while not (End_Of_File(Fichier)) loop
- Get_line(Fichier,Car,dernier); -- ON RECUPERE UNE LIGNE POUR LA TRAITER
- K:=1;
- while (K <= dernier) loop
- while (Car(K) /= ' ') loop --TANT QU'ON N'A PAS D'ESPACE
- Char:=Char & Car(K); --ON COLLE LE CARACTERE DANS "Char" (TEMPORAIRE)
- K:=K+1; --CARACTERE SUIVANT
- end loop;
- Mat(I,J):=Integer'value(To_String(Char));
- J:=J+1; -- COLONNE SUIVANTE
- K:=K+1; -- CARACTERE SUIVANT
- end loop;
- I:=I+1; --LIGNE SUIVANTE
- end loop;
- Close (Fichier);
- end ouv;
|
|