[Ada]fichier texte

fichier texte [Ada] - Ada - Programmation

Marsh Posté le 30-04-2002 à 10:19:32    

Salut à tous,
J'aimerais savoir comment on fait pour aller chercher des informations dans un fichier texte.  
merci d'avance
sinsé

Reply

Marsh Posté le 30-04-2002 à 10:19:32   

Reply

Marsh Posté le 04-05-2002 à 12:25:20    

-- Séquence de caractères (lue dans un fichier) ("Machine-Caractère", modele 1)
 
with Ada.Text_Io;  
 
package body f_acces_sequentiel_m1 is  
 
use Ada.Text_Io;
     
    Texte: File_Type;            -- Texte donné
    CC: Character;               -- Caractère Courant  
    Fin: Boolean;                -- indicateur de fin
    Active: Boolean := false;    -- Statut indiquant si la séquance est active ou non
    StdIn: Boolean := true;      -- Indique si le fichier utilisé est le stdIn ou pas
     
    procedure Demarrer(nom_fichier : in string := "" ) is
    begin  
        if nom_fichier /= "" then
   StdIn := false;
          Open(Texte, In_File, nom_fichier);
   Set_Input(Texte);
 end if;
        Fin := false;    
 Active := true;
        Avancer;
    end Demarrer;
 
--  ou bien   procedure Demarrer is
--            begin  
--               Put("Nom du fichier : " );
--               Get_Line(Nom, Long);
--               Open(Texte, In_File, Nom(1..Long));  
--               Fin := false;
--               Active := true;
--               Avancer;
--            end Démarrer;
 
    procedure Arreter is
    begin  
        if not Active then raise SEQUENCE_INACTIVE; end if;
        if not StdIn then
           Close(Texte);
        end if;
 Active := false;
    end Arreter;
 
    procedure Avancer is
    begin
        if not Active then raise SEQUENCE_INACTIVE; end if;
        if End_Of_File then
            Fin := true;
        elsif End_Of_Line then
            Skip_Line;
            CC := ASCII.LF;
        else
            Get(CC);  
        end if;        
    end Avancer;  
     
    function Courant return Character is
    begin
        if not Active then raise SEQUENCE_INACTIVE; end if;
        return CC;
    end Courant;
     
    function FdS return Boolean is
    begin
        if not Active then raise SEQUENCE_INACTIVE; end if;
        return Fin;
    end FdS;
     
end f_acces_sequentiel_m1;


---------------
[:procat]
Reply

Sujets relatifs:

Leave a Replay

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