FileReadArray

Bu fonksiyon, herhangi tipteki dizilerden (dizgi ve dinamik dizi içermeyen bir yapı dizisi olabilir) oluşan BIN tipli bir dosyadan okuma yapar.

uint  FileReadArray(
   int    file_handle,               // Dosya tanıtıcısı
   void&  array[],                   // Kayıt yapılacak dizi
   int    start=0,                   // yazım yapmak için dizideki başlangıç konumu
   int    count=WHOLE_ARRAY          // okunacak eleman sayısı
   );

Parametreler

file_handle

[in] FileOpen() fonksiyonunun dönüş yaptığı dosya tanımlayıcısı.

array[]

[out] Verinin yükleneceği dizi.

start=0

[in]  Dizinin yazılması için başlangıç konumu.

count=WHOLE_ARRAY

[in]  Okunacak elemanların sayısı. Varsayılan olarak tüm diziyi okur (count=WHOLE_ARRAY).

Dönüş değeri

Okunan elemanların sayısı.

Not

Dizgilerden oluşan diziler sadece TXT tipi dosyalardan okunabilirler. Fonksiyon, gerektiği takdirde dizinin büyüklüğünü artırmayı dener.

Örnek (burada kullanılan dosya, FileWriteArray fonksiyonunun kullanımından elde edilmiştir)

//--- script çalıştırıldığında giriş parametrelerinin penceresini göster
#property script_show_inputs
//--- giriş parametreleri
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| Fiyat verisini depolamak için bir yapı                           |
//+------------------------------------------------------------------+
struct prices
  {
   datetime          date; // tarih
   double            bid;  // satış fiyatı
   double            ask;  // alış fiyatı
  };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- yapı dizisi
   prices arr[];
//--- dosya yolu
   string path=InpDirectoryName+"//"+InpFileName;
//--- dosyayı aç
   ResetLastError();
   int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- dosyadan tüm verileri diziye oku
      FileReadArray(file_handle,arr);
      //--- dizi büyüklüğü değerini al
      int size=ArraySize(arr);
      //--- diziden verileri yazdır (çıktıla)
      for(int i=0;i<size;i++)
         Print("Tarih = ",arr[i].date," Satış = ",arr[i].bid," Alış = ",arr[i].ask);
      Print("Toplam veri = ",size);
      //--- dosyayı kapat
      FileClose(file_handle);
     }
   else
      Print("Dosya açma başarısız, hata ",GetLastError());
  }

Ayrıca Bakınız

Değişkenler, FileWriteArray