From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9b17a1f51a26de9d X-Google-Attributes: gid103376,public From: "David C. Hoos, Sr." Subject: Re: An array of records within an array of records (Still a problem) Date: 1998/05/02 Message-ID: <354b11f5.0@205.238.18.7>#1/1 X-Deja-AN: 349580868 References: <354AEE03.424DC998@none.com> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: RAINet Newsgroups: comp.lang.ada Date: 1998-05-02T00:00:00+00:00 List-Id: Hi, The error message means exactly what it says: you need a subtype mark where you had put the name of an object. The following code shows how it's done. Also, note that you must assign all three elements of the track array, otherwise you will get an error at run time, Further, the use of named association instead of positional association, and the organized layout of the assignment statement will make the code easier to understand and maintain. Finally, since many news readers cannot display HTML, you should use plain text when posting to widely-read newsgroups. with Ada.Text_Io;procedure Mullen is type Cd_Track is record Title:String(1..20); Artist:String(1..20); Playlength:Float:=0.00; Id:Integer; end record; type Cd_Track_Array is array(1..3) of Cd_Track; -- New_Cd_Track:Cd_Track_Array; type Cd is record Title:String(1..20); Artist:String(1..20); Id:Cd_Track_Array; Tracks:Integer; end record; type Cd_Array is array(1..3) of Cd; New_Cd_Array:Cd_Array;begin New_Cd_Array (1) := (Title => "aaaaaaaaaaaaaaaaaaaa", Artist => "bbbbbbbbbbbbbbbbbbbb", Id => (1 => (Title => "cccccccccccccccccccc", Artist => "dddddddddddddddddddd", Playlength => 0.34, Id => 1), 2 => (Title => "eeeeeeeeeeeeeeeeeeee", Artist => "ffffffffffffffffffff", Playlength => 0.35, Id => 2), 3 => (Title => "gggggggggggggggggggg", Artist => "hhhhhhhhhhhhhhhhhhhh", Playlength => 0.36, Id => 3) ), Tracks => 3); Ada.Text_Io.Put (New_Cd_Array(1).Id(1).Title);end Mullen; R Mullen wrote in message <354AEE03.424DC998@none.com>... I wonder if anyone could help me out, my problem is that I am trying to create an array of records within an array of records representing CD tracks within a CD, however I have tried every possible solution but the error I receive most is "Sub-type mark required in this context", this is on the line where I am specifying the ID of the CD to the array of tracks. my code is as follows: type cd_track is record title:string(1..20); artist:string(1..20); playlength:float:=0.00; id:integer; end record; type cd_track_array is array(1..3) of cd_track; new_cd_track:cd_track_array; type cd is record title:string(1..20); artist:string(1..20); id:new_cd_track; tracks:integer; end record; type cd_array is array(1..3) of cd; new_cd_array:cd_array; begin new_cd_array(1):=("qqqqqqqqqqqqqqqqqqqq","qqqqqqqqqqqqqqqqqqqq",("qqqqqqqqqq qqqqqqqqqq","qqqqqqqqqqqqqqqqqqqq",0.34,1),3); put(new_cd_array(1).id(1).title); I am specifying the ID of the CD to the array of CD Tracks. I would of thought it would work but as of yet it still wont. Although I have asked this before the responses weren't really concerning the actual problem. This is part of a larger coursework assignment this being a small section, the course lecturer has had a look and cant figure it out yet, could anyone have a look and tell me how I can incorporate an array of records within an array of records and possibly fix this most annoying error. Any help greatly appreciated. Thanks (Using latest version of GNAT with TEXT_IO, with windows 95)