[fpc-pascal]'record' / 'array' variable types

kractor baron.kractor at cogeco.ca
Mon Mar 8 18:31:27 CET 2004


Dr.Slump wrote:

>>working on some user-defined variable types for a media database project
>>i'm working on (slowly, oh so slowly). i've defined types for artist and
>>album and track (individual). naturally, there's going to be multiple
>>tracks per album, so i'm assuming that an array would be best to store
>>the track information. so far i have the following to "declare" the
>>record things
>>
>>    TArtist = record
>>        arName: ansistring;
>>        arID: longint;
>>    end;
>>
>>    TAlbum = record
>>        alName: ansistring;
>>        alID: longint;
>>        alLabel: ansistring;
>>        alNumTracks: longint;
>>        alYear: longint;
>>        alFormat: ansistring;
>>    end;
>>
>>    TTrack = record
>>        trNum: longint;
>>        trName: ansistring;
>>        trID: longint;
>>    end;
>>
>>    
>>
>
>Hi,
>
>You can declare the traces statically on an album:
>alTracks: array[1..20] of TTrack;
>but this way you might get short of available tracks for certain albums and
>in most cases you'll be wasting memory with unused tracks.
>
>Another option is to dynamically allocate the tracks array:
>alTracks: pTrack;
>pTrack = ^TTrack;
>
>However, I'd do it in a different way, using a TList descendant (classes
>unit) to keep all the tracks known to the db. Then you set an album and
>artist id on each track, the albums and artists could be a TList too.
>
>Hope it makes sense, I haven't programmed in a long time so all this could
>sound a bit old :)
>
>Ciao, Ivan
>
>
>_______________________________________________
>fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
>http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
>  
>
i had forgot to set the size of the array, which was causing the problem 
... some ppl on #fpc pointed that out to me ... :)

hehe, thanks everyone for the assistance once again




More information about the fpc-pascal mailing list