Copy part of one Array in SmartMS

Top 

Example code : Copy part of one Array in SmartMS

procedure TForm1.W3Button7Click(Sender: TObject);

 var

   i : Integer;

   Source, Target : array of Integer;

 

begin

  Source.SetLength(8);   // SetLength(Source, 8);

 

  for i := 1 to 8 do     // Build the dynamic source array

     Source[i-1] := i;   // Remember that arrays start at index 0

 

 //Target := Source.Copy(3, 4);  // Target := Copy(Source, 3, 4);

   Target := Source.Copy(3);

   Target.SetLength(4);

 

   for i := 0 to Length(Target) -1 do   // Display the created array

   ShowMessage('Target['+IntToStr(i)+'] : '+IntToStr(Target[i]));

end;

Note that we have copied the middle 4 elements of the Source array to a Target array.

Source array:

 Target[0] : 1

 Target[1] : 2

 Target[2] : 3

 Target[3] : 4

 Target[4] : 5

 Target[5] : 6

 Target[6] : 7

 Target[7] : 8

 

-----------------

Copy(Source, 3, 4);

Target array:

 Target[0] : 4

 Target[1] : 5

 Target[2] : 6

 Target[3] : 7

 

---------------------------------

 

JS output:

      var i$9 = 0;

      var Source = [];

      var Target$2 = [];

      $ArraySetLen(Source,8,0);

      for(i$9 = 1;i$9<=8;i$9++) {

         $DIdxW(Source,i$9-1,i$9,"");

      }

      Target$2 = $ArrayCopy(Source,3,"");

      $ArraySetLen(Target$2,4,0);

      var $temp29;

      for(i$9 = 0,$temp29 = Target$2.length;i$9<$temp29;i$9++) {

         alert("Target["+i$9.toString()+"] : "+($DIdxR(Target$2,i$9,"")).toString());

      }