problème lecture de fichier texte en ada - Ada - Programmation
Marsh Posté le 07-02-2013 à 13:12:35
Tu peux lire des float avec Ada Float_Text_Io
Ou avec l'attribut value du type Float.
Marsh Posté le 07-02-2013 à 13:21:24
ok du coup je pourrais les lire en considérant des float , en revanche je n'arrive pas a stocker les valeurs dans mon tableau ..
Marsh Posté le 07-02-2013 à 13:51:01
gargui a écrit : ok du coup je pourrais les lire en considérant des float , en revanche je n'arrive pas a stocker les valeurs dans mon tableau .. |
T'arrive pas à lire ton tableau,
C'est sensé être ça ? :
Code :
|
C'est put(Val(i));
Marsh Posté le 07-02-2013 à 14:26:18
J'ai modifié mon programme , grâce a ton aide je peux visualiser mes nombres , cependant je ne visualise que le dernier et je ne comprend pas pourquoi .. car normalement a la fin du programme, ma premiere boucle va me permettre de parcourir mon tableau , et ma deuxieme boucle devrait me permettre dafficher la valeur dans la case.. la valeur est-elle bien stockée ?
BEGIN
Open(F,In_File,"vitesse1.txt","" );
-- on ouvre le fichier de nom vitesse.txt
-- dans le programme on l'appelle F
I:=1;
j:=1;
WHILE NOT End_Of_File(F) LOOP
IF End_Of_Line(F) THEN
I:=I+1; -- I permettant de parcourir mon tableau avec les valeurs de vitesse
j:=1; -- J permettant de parcourir les caractères pour chaque case du tableau
Get(F,C); -- on lit un caractere dans F
New_Line;
ELSE
Get(F,C); -- on lit un caractere dans F
Val(J):=c; -- je met le caractère dans la case
J:=J+1; -- j'incrémente pour ne pas écraser le caractère précedent
--Put(c); -- on affiche c a l'ecran
END IF;
END LOOP;
Close(F); -- fermeture de f
FOR K IN 1..I LOOP
FOR L IN 1..J LOOP
PUT(Val(L));
END LOOP;
END LOOP;
END Gaussienne2;
Marsh Posté le 07-02-2013 à 14:44:11
Finalement, tu saisies des caractères ou des Float ?
Code :
|
Marsh Posté le 07-02-2013 à 14:56:47
bah quand je fait Open(F,In_File,"vitesse1.txt","" ); le programme le prend comme une suite de caractère, donc je ne peux pas les interpréter comme des floats, donc ce que j'aimerais pouvoir faire cest stocker ces caractères dans le tableau, l'un après l'autre et après les transformer en float. Car je ne sais pas comment les interpréter directement comme float et les stocker un par un dans le tableau
Marsh Posté le 07-02-2013 à 18:24:18
Ben t'as qu'as copier coller.
Dans le code ci-dessus, j'ai utilisé Ada.float_text_io qui lit et écrit dans un fichier texte.
Au lieux de lire caractère par caractère je lis un float.
Marsh Posté le 07-02-2013 à 11:47:49
bonjour, je dispose d'un fichier texte qui se présente de la forme suivante :
0.0000000
0.0000500
0.0001000
0.0001500
0.0002000
0.0002500
0.0003000
0.0003500
0.0004000
0.0004500
0.0005000
mon but étant de lire le fichier texte et de pouvoir intégrer ces valeurs dans un tableau donc voici mon code :
WITH Text_Io;
USE Text_Io;
PROCEDURE gaussienne2 IS
F : File_Type;
C : Character;
TYPE Valeur_Vitesse IS ARRAY (1..150000) OF Character;
Val:Valeur_Vitesse;
I:Integer:=1;
BEGIN
Open(F,In_File,"vitesse1.txt","" );
-- on ouvre le fichier de nom truc.txt
-- dans le programme on l'appelle F
WHILE NOT End_Of_File(F) LOOP
IF End_Of_Line(F) THEN
i:=i+1;
Get(F,C); -- on lit un caractere dans F
New_Line;
ELSE
Get(F,C); -- on lit un caractere dans F
val(i):=c;
--Put(c); -- on affiche c a l'ecran
END IF;
END LOOP;
Close(F); -- fermeture de f
FOR K IN 1..I LOOP
Put(character'val(K));
END LOOP;
END gaussienne2;
Mon put(c) m'affiche correctement les valeurs , en revanche ma boucle tout a la fin de m'affiche pas les valeurs du fichier texte dans le tableau et je ne trouve pas l'erreur ..
de même quand je lit mon fichier texte, ada va stocker ces valeurs dans le tableau sous forme de caractère, comment puis je avoir des integer ? de manière a pouvoir traiter ces nombres par la suite. en vous remerciant de votre aide,
gargui