-- -- FACILITY: ITT Avionics -- 390 Washington Avenue -- Nutley, NJ 07110 -- -- ABSTRACT: This file contains the following: package UATL_TEXT_REDUCTION, -- procedure OPEN_TEXT_FILE, procedure OUTPUT_TEXT, procedure -- NEW_LINE, and procedure CLOSE_TEXT_FILE. -- -- -- -- MODIFICATION HISTORY: -- -- DATE REASON AUTHOR -- -- -- with TEXT_IO; use TEXT_IO; package body UATL_TEXT_REDUCTION is ASCII_FILE : TEXT_IO.FILE_TYPE; procedure OPEN_TEXT_FILE (FILE_NAME : in STRING; APPEND : in BOOLEAN := FALSE) is TEMP_FILE : TEXT_IO.FILE_TYPE; TEXT : STRING (1 .. 132); LENGTH : NATURAL; begin if APPEND then begin OPEN ( FILE => TEMP_FILE, MODE => IN_FILE, NAME => FILE_NAME); -- create new file CREATE ( FILE => ASCII_FILE, MODE => OUT_FILE, NAME => FILE_NAME); while not END_OF_FILE (TEMP_FILE) loop GET_LINE (FILE => TEMP_FILE, ITEM => TEXT, LAST => LENGTH); PUT_LINE (FILE => ASCII_FILE, ITEM => TEXT (1 .. LENGTH)); end loop; CLOSE (FILE => TEMP_FILE); exception when TEXT_IO.STATUS_ERROR => -- already open raise STATUS_ERROR; when TEXT_IO.NAME_ERROR => CREATE ( FILE => ASCII_FILE, MODE => OUT_FILE, NAME => FILE_NAME); when TEXT_IO.DATA_ERROR => -- error when copying data from existing file raise DATA_ERROR; end; else -- create new file CREATE ( FILE => ASCII_FILE, MODE => OUT_FILE, NAME => FILE_NAME); end if; end OPEN_TEXT_FILE; procedure OUTPUT_TEXT (PTR : in STRING_ARRAY_PTR) is begin SET_COL ( FILE => ASCII_FILE, TO => POSITIVE_COUNT'FIRST); for I in PTR'FIRST .. PTR'LAST loop PUT_LINE ( FILE => ASCII_FILE, ITEM => PTR.all (I)); end loop; end OUTPUT_TEXT; procedure NEW_LINE is begin TEXT_IO.NEW_LINE (FILE => ASCII_FILE); end NEW_LINE; procedure CLOSE_TEXT_FILE is begin TEXT_IO.CLOSE (ASCII_FILE); exception when TEXT_IO.STATUS_ERROR => raise STATUS_ERROR; end CLOSE_TEXT_FILE; end UATL_TEXT_REDUCTION;