home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / prog1 / ada-tutr.lzh / CHANGESN.ADA < prev    next >
Text File  |  1988-12-21  |  2KB  |  53 lines

  1. -- CHANGESN.ADA   Ver. 1.20   21-DEC-1988
  2. -- Copyright 1988 John J. Herro
  3. -- Software Innovations Technology
  4. -- 1083 Mandarin Drive NE, Palm Bay, FL 32905-4706   (407)951-0233
  5. --
  6. -- Used to change the serial number in ADA-TUTR.DAT after registering.
  7. --
  8. with TEXT_IO, DIRECT_IO; use TEXT_IO;
  9. procedure CHANGESN is
  10.    subtype BLOCK_SUBTYPE is STRING(1 .. 64);
  11.    package RANDOM_IO is new DIRECT_IO(BLOCK_SUBTYPE); use RANDOM_IO;
  12.    DATA_FILE_NAME : constant STRING := "ADA-TUTR.DAT";
  13.    DATA_FILE      : RANDOM_IO.FILE_TYPE;
  14.    BLOCK          : BLOCK_SUBTYPE;            -- Block read from the data file.
  15.    BLOCK_NUM      : RANDOM_IO.COUNT := 58;      -- Number of the current block.
  16.    PLACE          : INTEGER;                 -- Index to search for "Serial #".
  17.    FOUND          : BOOLEAN := FALSE;         -- True when "Serial #" is found.
  18.    SERIAL_NUM     : STRING(1 .. 5);             -- The serial number, in ASCII.
  19.    INPUT          : STRING(1 .. 6);                     -- Input that you type.
  20.    LEN            : INTEGER;                          -- Length of typed input.
  21.    LEGAL_NOTE     : constant STRING := " Copyright 1988 John J. Herro ";
  22.                          -- LEGAL_NOTE isn't used by the program, but it causes
  23.                          -- the compiler to place this string in the .EXE file.
  24. begin
  25.    RANDOM_IO.OPEN(DATA_FILE, MODE => INOUT_FILE, NAME => DATA_FILE_NAME);
  26.    while not FOUND loop
  27.       BLOCK_NUM := BLOCK_NUM + 1;
  28.       READ(FILE => DATA_FILE, ITEM => BLOCK, FROM => BLOCK_NUM);
  29.       PLACE := 0;
  30.       while not FOUND and PLACE <= 50 loop
  31.          PLACE := PLACE + 1;
  32.          FOUND := BLOCK(PLACE .. PLACE + 7) = "Serial #";
  33.       end loop;
  34.    end loop;
  35.    SERIAL_NUM := BLOCK(PLACE + 10 .. PLACE + 14);
  36.    PUT_LINE("Old serial number is " & SERIAL_NUM & ".");
  37.    PUT("New serial number:   ");
  38.    INPUT := SERIAL_NUM & " ";
  39.    GET_LINE(INPUT, LEN);
  40.    NEW_LINE;
  41.    BLOCK(PLACE + 10 .. PLACE + 14) := INPUT(1 .. 5);
  42.    WRITE(FILE => DATA_FILE, ITEM => BLOCK, TO => BLOCK_NUM);
  43.    CLOSE(DATA_FILE);
  44.    PUT_LINE("Serial number changed to " & INPUT(1 .. 5) & ".");
  45. exception
  46.    when RANDOM_IO.NAME_ERROR =>
  47.       PUT("I'm sorry.  The file " & DATA_FILE_NAME);
  48.       PUT_LINE(" seems to be missing.");
  49.    when RANDOM_IO.END_ERROR =>
  50.       PUT("I'm sorry.  I couldn't find a serial number in ");
  51.       PUT_LINE(DATA_FILE_NAME & ".");
  52. end CHANGESN;
  53.