[fpc-pascal] Dynamic Arrays in Procedures

Howard Page-Clark hdpc at talktalk.net
Sun Oct 4 22:15:04 CEST 2020


On 04/10/2020 20:58, James Richters via fpc-pascal wrote:
>
> I’m wondering if there is a way to pass an array of values to a 
> Procedure without defining an array variable….
>
> For example, if I have a Procedure:
>
> Procedure DoSomething(X :Byte);
>
> Then I can call it with a specific a variable like this:
>
> Var
>
> ThingA :Byte;
>
>>
> DoSomething(ThingA);
>
> And I can also call it without a variable but instead just hard code a 
> specific value like this:
>
> DoSomething($1A);
>
> So if I have a procedure like this:
>
> Procedure DoSomethingElse(Y :Array of Byte);
>
> I can call it like this:
>
> Var
>
> ThingB :Array Of Byte;
>
> SetLength(ThingB,3);
>
> ThingB[0] :=$12;
>
> ThingB[1] :=$1A;
>
> ThingB[2] :=$2B;
>
> DoSomethingElse(ThingB);
>
> But can I also just call it with specific values somehow?
>
> DoSomethingElse([$12,$1A,$2B]);for example… of course this doesn’t 
> work, but is there a syntax that would work?
>
>
There is array of const syntax.

== code==

program project1;

{$mode objfpc}

procedure ShowArray(anArray: array of const);
var
   i: Integer;
begin
   for i := Low(anArray) to High(anArray) do
     case anArray[i].VType of
       vtInteger: WriteLn(anArray[i].VInteger,' ');
       vtChar: WriteLn(anArray[i].VChar,' ');
     end;
end;

begin
   ShowArray([99, -1, 'p', 'G']);
   ReadLn;
end.

== code end==



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20201004/3458fc4d/attachment-0001.htm>


More information about the fpc-pascal mailing list