The Ada Program: read_cd.adb

  1 -- read_cd.adb:  read records from binary file
  2 
  3 with Ada.Text_IO, Ada.Integer_Text_IO, Ada.Sequential_IO;
  4 use Ada;
  5 
  6 procedure Read_CD is
  7 
  8    subtype Year_Range is Integer range 1900..2990;
  9    subtype Track_Range is Integer range 1..30;
 10    type Disc is record
 11       Title, Artist, Album: String(1..20);
 12       Year: Year_Range;
 13       Track: Track_Range;
 14    end record;
 15 
 16    package CD_Bin_IO is new Sequential_IO (Disc);
 17    File      : CD_Bin_IO.File_Type;
 18    File_Name : constant String := "disk.data";
 19    Song        : Disc;
 20 
 21 begin
 22 
 23    CD_Bin_IO.Open (File, Mode=>CD_Bin_IO.In_File, Name=>File_Name);
 24    while not (CD_Bin_IO.End_Of_File (File)) loop
 25       CD_Bin_IO.Read (File=>File, Item=>Song);
 26       Text_IO.Put_Line (Item=>Song.Title);
 27    end loop;
 28    CD_Bin_IO.Close (File=>File);
 29 
 30 end Read_CD;