DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦cfcb0bd0f⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Document, seg_04032a

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Text_Io, Filtre_D_Entree;
package body Document is

    Mot_Courant : Nombre_De_Mots.Numero := 0;

    procedure Open is
    begin
        Text_Io.Set_Input (Text_Io.Standard_Input);
        --filtre_d_entree.purger;
    exception
        when others =>
            Text_Io.Put_Line ("Erreur");
    end Open;

    procedure Close is
    begin
        Text_Io.Put_Line ("fin de programme");
        --filtre_d_entree.purger;
    exception
        when others =>
            Text_Io.Put_Line ("Erreur");
    end Close;

    procedure Get (Le_Mot : out Mots.Mot;
                   Le_Nombre : out Nombre_De_Mots.Numero;
                   B_Fini : out Boolean) is
        Caractere_Temporaire : Character;
        Mot_Temporaire : String (1 .. 80);
        Indice : Natural := 0;


        --function "+" (X, Y : in Nombre_De_Mots.Numero)
        --           return Nombre_De_Mots.Numero renames Nombre_De_Mots."+";
        --function "=" (X, Y : in Nombre_De_Mots.Numero)
        --             return Nombre_De_Mots.Numero renames Nombre_De_Mots."=";
    begin
        B_Fini := False;
        loop
            Filtre_D_Entree.Entrer (Caractere_Temporaire);
            case Caractere_Temporaire is
                when 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' =>
                    Indice := Indice + 1;
                    Mot_Temporaire (Indice) := Caractere_Temporaire;
                when Filtre_D_Entree.Termine_Ligne =>
                    B_Fini := True;
                    if Indice > 0 then
                        Mots.Creer (Le_Mot, Mot_Temporaire (1 .. Indice));
                        Mot_Courant := Mot_Courant + 1;
                        Le_Nombre := Mot_Courant;
                        return;
                    else
                        Text_Io.Put_Line ("Il n'y a rien");
                        --Mot_Courant := Nombre_De_Mots.Nombre_Max_Mots;
                        Le_Nombre := Mot_Courant;
                        return;
                    end if;
                when others =>
                    if Indice > 0 then
                        Mot_Courant := Mot_Courant + 1;
                        Le_Nombre := Mot_Courant;
                        Mots.Creer (Le_Mot, Mot_Temporaire (1 .. Indice));
                        return;
                    end if;
            end case;
        end loop;
    exception
        when Constraint_Error =>
            raise Mot_Trop_Long;
        when others =>
            Text_Io.Put_Line ("Erreur !");
    end Get;




end Document;


E3 Meta Data

    nblk1=4
    nid=4
    hdr6=6
        [0x00] rec0=23 rec1=00 rec2=01 rec3=038
        [0x01] rec0=14 rec1=00 rec2=03 rec3=054
        [0x02] rec0=18 rec1=00 rec2=02 rec3=000
        [0x03] rec0=03 rec1=98 rec2=ac rec3=142
    tail 0x2153a9ae2860e3f5cb87a 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 00 00 63 80 11 6d 62 72 65 5f 44 65 5f 4d 6f  ┆   c  mbre_De_Mo┆