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;