Array Dyn of Records



Dynamic Array of Records
Smart pascal source code
type TMyRec = record V: Integer; N: String; end; type TMyRecs = array of TMyRec; procedure WriteLnRecs(recs: TMyRecs); var i: Integer; begin WriteLn(recs.Length()); for i := recs.Low() to recs.High() do WriteLn(IntToStr(recs[i].V) + ': ' + recs[i].N); end; procedure AddRec(recs: array of TMyRec; V: Integer; N: String); var k: Integer; begin k := recs.Length; recs.SetLength(k + 1); recs[k].V := V; recs[k].N := N; end; { main.pas } Begin var recs := new TMyRec[0]; WriteLnRecs(recs); AddRec(recs, 2, 'one'); WriteLnRecs(recs); AddRec(recs, 2, 'two'); recs.SetLength(3); WriteLnRecs(recs); recs.SetLength(1); WriteLnRecs(recs); const cRec: TMyRec = (V: 123; N: 'bye'); recs[0] := cRec; recs[0].N := 'BYE'; recs.Add(cRec); WriteLnRecs(recs); recs.Delete(0); WriteLnRecs(recs); { <<< CONSOLE OUTPUTS >>> 0 1 2: one 3 2: one 2: two 0: 1 2: one 2 123: BYE 123: bye 1 123: bye } end;