ED n·5 Algorithmique-Programmation----corrigé



Objectifs
 
 



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

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;
  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;


Dernière modification le / Last modified : Tuesday May 09 2000 15:56:17