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

⟦b7003801b⟧ TextFile

    Length: 3043 (0xbe3)
    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 Text_Io;
separate (File_Name_Package)
procedure Get_Output_File_Name (For_This_File : out File_Name) is

    --==============================================================
    -- This procedure gets either an output file name or just a    =
    -- carriage return. Leading blanks are stripped off by invoking=
    -- a subprogram in File_Name_Package body called               =
    -- Read_Over_Blanks. This procedure will always read until a   =
    -- carriage return is found.                                   =
    --                                                             =
    -- written  by  Gary Russell at EVB Software Engineering Inc.  =
    -- Reviewed by Brad Balford and Johan Margono                  =
    -- May 1985                                                    =
    --==============================================================

    Input_Character : Character;
    -- This object is used to store the first input character from the
    -- input (the value returned from Read_Over_Blanks)

    New_File_Name : File_Name;
    -- a holder for the new file name as For_This_File is an out parameter

begin
    -- Get_Output_File_Name

    -- Prompts the user for an output file name

    Text_Io.Put_Line
       ("Would you like the output to go to a file or the Terminal" &
        " screen ? ");
    Text_Io.Put
       ("Enter carriage return for Terminal screen, or a file name : ");

    -- Read the user's response. First set the number of characters
    -- to zero

    New_File_Name.Number_Of_Characters := 0;

    Get_A_File_Name_Or_Carriage_Return:
        begin

            -- Read over any possible blanks that may occur in the output

            Read_Over_Blanks (First_Non_Blank => Input_Character);


            New_File_Name.Number_Of_Characters :=
               New_File_Name.Number_Of_Characters + 1;
            New_File_Name.Characters_In_Name
               (New_File_Name.Number_Of_Characters) := Input_Character;

            -- Get the rest of the output filename until the end of line

            Get_A_Line:
                loop
                    exit Get_A_Line when Text_Io.End_Of_Line;
                    New_File_Name.Number_Of_Characters :=
                       New_File_Name.Number_Of_Characters + 1;
                    Text_Io.Get (Item =>
                                    New_File_Name.Characters_In_Name
                                       (New_File_Name.Number_Of_Characters));
                end loop Get_A_Line;

        exception
            when No_More_File_Names =>
                null; -- A carriage return was typed in, so output should go
                -- to the terminal screen
        end Get_A_File_Name_Or_Carriage_Return;

    For_This_File := New_File_Name;

exception
    when Constraint_Error =>
        Text_Io.Put_Line ("*****Too many characters in output file name.");
        Text_Io.Put_Line ("*****Excess characters are ignored.");
        Text_Io.Skip_Line;

        For_This_File := New_File_Name;

end Get_Output_File_Name;