[Back to DATATYPE SWAG index] [Back to Main SWAG index] [Original]

    (*
    > is there any way to write an inverse Ord function for any type?

    > Type Color = (RED, BLUE, GREEN, VIOLET, PURPLE);
    > Var Whatever : Color;

    > Begin
    >   Writeln ('Red: ',Ord(Red); { Will print Red: 0 }
    >   Writeln ('Inverse of Ord of Red:,InvOrd(0,Color); { Should spit out RED }
    > End.

    > For the function I had this in mind:

    > Function InvOrd(TypeOrd : Integer; SpecifyType : SomeType) : SomeType;
    > Begin
    >   { What goes here? }
    > End.

    In a running program, variables are not really accessed by name, but by
    address,  and their names don't show up in the final EXE.  The only way
    I know to do such a thing is to add:
    *)

    Const
      Red    = 1;
      Purple = 5;
      InvOrd : Array [Red..Purple] of String[6] =
          ('Red', 'Blue', 'Green', 'Violet', 'Purple');

    { And then access this array like: }
    begin
      WriteLn('Inverse of Ord of Red:', InvOrd[Red]);
    end.

[Back to DATATYPE SWAG index] [Back to Main SWAG index] [Original]