DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦8b239c15f⟧ TextFile

    Length: 1536 (0x600)
    Types: TextFile
    Names: »B«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with Text_Io;

package body Our_Generic_String is
    function Image (The_Object : Object) return String is
    begin
        return The_Object.The_String;
    end Image;


    procedure Copy (Target : in out Object; Source : Object) is
    begin
        Target := Object'(The_Size => Source.The_Size,
                          The_String => Source.The_String);
    end Copy;


    procedure Create (Target : in out Object; Source : String) is
    begin
        Text_Io.Put_Line ("(generic_string) Create : source length=>" &
                          Integer'Image (Source'Length));
        if Source'Length > Default_Maximal_Length then

            Target := Object'
                         (The_Size => Default_Maximal_Length,
                          The_String => (1 .. Default_Maximal_Length => ' '));
            Target.The_String (1 .. Default_Maximal_Length) :=
               Source (Source'First .. Source'First + Source'Length - 1);
        else
            Target := Object'(The_Size => Source'Length,
                              The_String => (1 .. Source'Length => ' '));
            Target.The_String (1 .. Source'Length) := Source;
        end if;
    end Create;


    function "&" (O1, O2 : Object) return Object is
    begin
        return Object'(The_Size => O1.The_Size + O2.The_Size,
                       The_String => O1.The_String & O2.The_String);
    end "&";


    procedure Clear (The_Object : in out Object) is
    begin
        The_Object := Undefined_Object;
    end Clear;
end Our_Generic_String;