ED n·5 Algorithmique-Programmation----corrigé |
Exercice 2
On veut écrire un programme qui lit un fichier texte et affiche les données lues ligne par ligne.
Question 1
-- Algorithme
début
ouvrir le fichier;
tant que non fin du fichier
faire
lire une ligne;
écrire la ligne lue sur
la sortie standard;
aller à la ligne;
fin tant que;
fin.
-- Programme
with Ada.Text_io;use Ada.Text_io;
procedure lecturefichier is
--On veut écrire un programme qui lit
un fichier texte et affiche les
--données lues ligne par ligne.
f:FILE_TYPE; --
f est un fichier texte
ligne:String(1..80);
nbCar:Natural;
nomFichier:String(1..100);
lg:Natural;
begin
put("Nom
du fichier texte ? : ");
get_line(nomFichier,lg);
OPEN(f,IN_FILE,nomFichier(1..lg));
while not(END_OF_FILE(f)) loop
get_line(f,ligne,nbCar);
put(ligne(1..nbCar));new_line;
end loop;
close(f);
end lecturefichier;
Question 2
with Ada.Text_io;use Ada.Text_io;
procedure lecturefichier is
--On veut écrire un programme qui lit
un fichier texte et affiche les
--données lues ligne par ligne.
f:FILE_TYPE; --
f est un fichier texte
ligne:String(1..80);
nbCar:Natural;
nomFichier:String(1..100);
lg:Natural;
begin
put("Nom
du fichier texte ? : ");
get_line(nomFichier,lg);
OPEN(f,IN_FILE,nomFichier(1..lg));
while not(END_OF_FILE(f)) loop
get_line(f,ligne,nbCar);
put(ligne(1..nbCar));new_line;
end loop;
close(f);
exception
when NAME_ERROR=>put("Le fichier
n'xiste pas!");new_line;
end lecturefichier;
Question 3
with Ada.Text_io;use Ada.Text_io;
procedure lecturefichier is
--On veut écrire un programme qui lit
un fichier texte et affiche les
--données lues ligne par ligne.
f:FILE_TYPE; --
f est un fichier texte
ligne:String(1..80);
nbCar:Natural;
nomFichier:String(1..100);
lg:Natural;
begin
put("Nom
du fichier texte ? : ");
get_line(nomFichier,lg);
OPEN(f,IN_FILE,nomFichier(1..lg));
while not(END_OF_FILE(f)) loop
get_line(f,ligne,nbCar);
put(ligne(1..nbCar));new_line;
end loop;
exception
when NAME_ERROR=>put("Le fichier
n'xiste pas!");new_line;
when END_ERROR=>close(f);
end lecturefichier;
Question 4
procedure lecturefichier is
--On veut écrire un programme qui lit
un fichier texte et affiche les
--données lues ligne par ligne.
f:FILE_TYPE; --
f est un fichier texte
ligne:String(1..80);
nbCar:Natural;
LIGNE_VIDE:exception;
nomFichier:String(1..100);
lg:Natural;
begin
put("Nom du fichier texte ? : ");
get_line(nomFichier,lg);
OPEN(f,IN_FILE,nomFichier(1..lg));
loop
get_line(f,ligne,nbCar);
if nbCar=0
then
raise
LIGNE_VIDE;
else
put(ligne(1..nbCar));new_line;
end if;
end loop;
exception
when NAME_ERROR =>
-- le nom de ce fichier n'existe
pas
put("Le fichier n'existe pas ");new_line;
when END_ERROR =>
-- tentative de lecture après
la fin de fichier
put("fin de fichier !");new_line;
close(f);
when LIGNE_VIDE =>
put("ligne vide. arrêt!");new_line;
close(f);
end lecturefichier;