ArraySwap

Aynı türdeki iki dinamik dizinin içeriğini değiştirir. Çok boyutlu diziler için, ilk boyut haricindeki tüm boyutlardaki öğe sayısı eşleşmelidir.

bool  ArraySwap(
   void&  array1[],      // ilk dizi
   void&  array2[]       // ikinci dizi
   );

Parameters

array1[]

[in][out]  Sayısal türün dizisi.

array2[]

[in][out]  Sayısal türün dizisi.

Dönen değer

Eğer başarulı ise true, aksi halde false döndürür. Bu durumda, GetLastError(),ERR_INVALID_ARRAY hata kodunu döndürür.

Not

Fonksiyon, ilki hariç aynı türdeki ve aynı boyuttaki dinamik dizileri kabul eder. Tam sayı türüleri için, işaret gözardı edilir, örneğin char==uchar)

Örnek:

//+------------------------------------------------------------------+
//| Script programı başlatma fonksiyonu                              |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- tekliflerin depolanması için diziler
   double source_array[][8];
   double   dest_array[][8];
   MqlRates rates[];
//--- Geçerli zaman aralığında son 20 mumun verilerini alınması
   int copied=CopyRates(NULL,0,0,20,rates);
   if(copied<=0)
     {
      PrintFormat("CopyRates(%s,0,0,20,rates) failed, error=%d",
                  Symbol(),GetLastError());
      return;
     }
//--- Kopyalanan veri miktarı için dizi boyutunu ayarlanması
   ArrayResize(source_array,copied);
//--- rate_array_1[] dizisini, rates[] den verileri kullanarak doldurulması
   for(int i=0;i<copied;i++)
     {
      source_array[i][0]=(double)rates[i].time;
      source_array[i][1]=rates[i].open;
      source_array[i][2]=rates[i].high;
      source_array[i][3]=rates[i].low;
      source_array[i][4]=rates[i].close;
      source_array[i][5]=(double)rates[i].tick_volume;
      source_array[i][6]=(double)rates[i].spread;
      source_array[i][7]=(double)rates[i].real_volume;
     }
//--- source_array[] ve dest_array[] arasındaki verileri değiştirilmesi
   if(!ArraySwap(source_array,dest_array))
     {
      PrintFormat("ArraySwap(source_array,rate_array_2) failed, error code=%d",GetLastError());
      return;
     }
//--- değiştirme sonrasında kaynak dizinin sıfır olmasının sağlanması
   PrintFormat("ArraySwap() done: ArraySize(source_array)=%d",ArraySize(source_array));
//--- dest_array[] hedef dizisinin verilerinin görüntülenmesi
   ArrayPrint(dest_array);
  }

Ayrıca bakın

ArrayCopy, ArrayFill, ArrayRange, ArrayIsDynamic