39 lines
1023 B
Plaintext
39 lines
1023 B
Plaintext
type
|
|
TReturnArray = array of integer; //you need to define a type to be able to return it
|
|
|
|
function ConcatArray(a1,a2:array of integer):TReturnArray;
|
|
var
|
|
i,r:integer;
|
|
begin
|
|
{ Low(array) is not necessarily 0 }
|
|
SetLength(result,High(a1)-Low(a1)+High(a2)-Low(a2)+2); //BAD idea to set a length you won't release, just to show the idea!
|
|
r:=0; //index on the result may be different to indexes on the sources
|
|
for i := Low(a1) to High(a1) do begin
|
|
result[r] := a1[i];
|
|
Inc(r);
|
|
end;
|
|
for i := Low(a2) to High(a2) do begin
|
|
result[r] := a2[i];
|
|
Inc(r);
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
var
|
|
a1,a2:array of integer;
|
|
r1:array of integer;
|
|
i:integer;
|
|
begin
|
|
SetLength(a1,4);
|
|
SetLength(a2,3);
|
|
for i := Low(a1) to High(a1) do
|
|
a1[i] := i;
|
|
for i := Low(a2) to High(a2) do
|
|
a2[i] := i;
|
|
TReturnArray(r1) := ConcatArray(a1,a2);
|
|
for i := Low(r1) to High(r1) do
|
|
showMessage(IntToStr(r1[i]));
|
|
Finalize(r1); //IMPORTANT!
|
|
ShowMessage(IntToStr(High(r1)));
|
|
end;
|