Am 18.10.2011 05:47, schrieb Andrew Pennebaker:
But, but, the docs imply that this is the syntax for a function that
returns an array of bytes.
[snip]
function XlatPrime () : array of byte;
begin
XlatPrime := (
$64, $73, $66, $64, $3b, $6b, $66, $6f,
$41, $2c, $2e, $69, $79, $65, $77, $72,
$6b, $6c, $64, $4a, $4b, $44, $48, $53,
$55, $42, $73, $67, $76, $63, $61, $36,
$39, $38, $33, $34, $6e, $63, $78, $76,
$39, $38, $37, $33, $32, $35, $34, $6b,
$3b, $66, $67, $38, $37
);
end;

Free Pascal (and Delphi and TP) does not support such syntax. I suggest you that you define your array as a const instead of a function and just use that.

E.g.

const
  XlatPrime: array[0..52] of Byte = (
    $64, $73, $66, $64, $3b, $6b, $66, $6f,
    $41, $2c, $2e, $69, $79, $65, $77, $72,
    $6b, $6c, $64, $4a, $4b, $44, $48, $53,
    $55, $42, $73, $67, $76, $63, $61, $36,
    $39, $38, $33, $34, $6e, $63, $78, $76,
    $39, $38, $37, $33, $32, $35, $34, $6b,
    $3b, $66, $67, $38, $37
  );

It is necessary to specify the element count correctly.

Note: In trunk you should be able to do the following:

type
  TByteArray = array of Byte;

function XlatPrime(): TByteArray;
begin
  XlatPrime := TByteArray.Create(
    $64, $73, $66, $64, $3b, $6b, $66, $6f,
    $41, $2c, $2e, $69, $79, $65, $77, $72,
    $6b, $6c, $64, $4a, $4b, $44, $48, $53,
    $55, $42, $73, $67, $76, $63, $61, $36,
    $39, $38, $33, $34, $6e, $63, $78, $76,
    $39, $38, $37, $33, $32, $35, $34, $6b,
    $3b, $66, $67, $38, $37
  );
end;

This feature was introduced because of Delphi compatibilty (and I still have the opinion that it would be nice if that would be extended for "unnamed" array types as well...)

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to