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 - metrics - download
Index: B T

⟦3f694f210⟧ TextFile

    Length: 3560 (0xde8)
    Types: TextFile
    Names: »B«

Derivation

└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
    └─⟦5cb1d1d7f⟧ »DATA« 
        └─⟦3b1ee7bd8⟧ 
            └─⟦this⟧ 

TextFile

with Library;
with Io_Exceptions;
with Io;
use Io;
package body User_Information is

    type Catagory is (C_Name, C_Phone_Number, C_Mail_Stop,
                      C_Default_Print_Queue, C_Division, C_Group);

    Info_Filename : constant String := ".User_Information";

    function Root_Library return String is separate;

    function Get_Information
                (Info : Catagory; Account_Name : String) return String is

        F : File_Type;
        Line : String (1 .. 80);
        Count : Natural;
    begin
        Open (F, In_File, Root_Library & Account_Name & Info_Filename);
        for I in Catagory'First .. Info loop
            Get_Line (F, Line, Count);
        end loop;
        Close (F);
        return (Line (1 .. Count));
    exception
        when others =>
            return "Not Initialized";
    end Get_Information;

    function Get_Name (Account_Name : String) return String is
    begin
        return Get_Information (C_Name, Account_Name);
    end Get_Name;

    function Get_Phone_Number (Account_Name : String) return String is
    begin
        return Get_Information (C_Phone_Number, Account_Name);
    end Get_Phone_Number;

    function Get_Mail_Stop (Account_Name : String) return String is
    begin
        return Get_Information (C_Mail_Stop, Account_Name);
    end Get_Mail_Stop;

    function Get_Default_Print_Queue (Account_Name : String) return String is
    begin
        return Get_Information (C_Default_Print_Queue, Account_Name);
    end Get_Default_Print_Queue;

    function Get_Division (Account_Name : String) return String is
    begin
        return Get_Information (C_Division, Account_Name);
    end Get_Division;

    function Get_Group (Account_Name : String) return String is
    begin
        return Get_Information (C_Group, Account_Name);
    end Get_Group;

    procedure Show (Account_Name : String) is
    begin
        Put_Line ("Information for " & Account_Name);
        for I in Catagory'First .. Catagory'Last loop
            Put_Line (Catagory'Image (I) & " => " &
                      Get_Information (I, Account_Name));
        end loop;
    end Show;

    procedure Set (Account_Name        : String := "";
                   Full_Name           : String := "";
                   Phone_Number        : String := "";
                   Mail_Stop           : String := "";
                   Default_Print_Queue : String := "";
                   Division            : String := "";
                   Group               : String := "") is
        F : File_Type;
    begin
        begin
            Create (F, Out_File, Root_Library & Account_Name & Info_Filename);
        exception
            when Io_Exceptions.Name_Error =>
                Library.Create_Directory (Name => Root_Library & Account_Name);
                Create (F, Out_File,
                        Root_Library & Account_Name & Info_Filename);
        end;
        for I in Catagory loop
            case I is
                when C_Name =>
                    Put_Line (F, Full_Name);
                when C_Phone_Number =>
                    Put_Line (F, Phone_Number);
                when C_Mail_Stop =>
                    Put_Line (F, Mail_Stop);
                when C_Default_Print_Queue =>
                    Put_Line (F, Default_Print_Queue);
                when C_Division =>
                    Put_Line (F, Division);
                when C_Group =>
                    Put_Line (F, Group);
            end case;
        end loop;
        Close (F);
    end Set;
end User_Information;