program varient; {demo varient records} { var anumber : integer; astring : string( 128 );} type pvr = ^vr; vr = record case s: integer of 1: (anumber: integer); 2: (astring: string( 128)); end; var a : array[ 1..2] of pvr; i : integer; begin a[1] := new( pvr, 1); a[1]^.anumber := 12345; a[2] := new( pvr, 2); a[2]^.astring := 'this is a string'; writeln( a[1]^.s,' ',sizeof(a[1]^) ); writeln( a[2]^.s,' ',sizeof(a[2]^) ); for i := 1 to 2 do if a[i]^.s = 1 then writeln( a[i]^.anumber ) else if a[i]^.s = 2 then writeln( a[i]^.astring ) else writeln(' **Error**' ); end.