FileLoad

Belirtilen ikili dosyadaki tüm verileri parametre şeklinde geçirilen sayısal diziye yazar. Bu fonksiyon sayesinde, bilinen veri tiplerini uygun bir diziye kolayca yazabilirsiniz.

long  FileLoad(
   const string  file_name,         // Dosya ismi
   void&         buffer[],          // Bir sayısal tipli dizi veya basit yapı
   int           common_flag=0      // Dosya bayrağı, varsayılan olarak dosyalar <veri_klasörü>\MQL5\Files\ konumunda aranır
   );

Parametreler

file_name

[in]  Verinin okunacağı dosyanın ismi.

buffer

[out]  Bir sayısal dizi veya basit yapı.

common_flag=0

[in] Dosya bayrağı (işlem modunu belirtir). Parametre belirtilmemişse dosya MQL5\Files (veya sınama için <sınama_temsilcisi_konumu>\MQL5\Files) konumunda aranır.

Dönüş Değeri

Okunan veri sayısı veya hata durumunda -1.

Not

FileLoad() fonksiyonu dosyadan sadece dizi büyklüğünün katlarına karşılık gelen bayt sayısını okur. Dosya boyutu 10 bayt olsun ve fonksiyon verileri double tipli bir diziye yazacak olsun (sizeof(double)=8). Bu durumda fonksiyon dosyadan sadece 8 baytlık veri okur. Kalan 2 bayt okunmaz ve FileLoad() fonksiyonu 1 (1 eleman okundu) dönüşü yapar.

Örnek:

//+------------------------------------------------------------------+
//|                                                Demo_FileLoad.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//--- giriş parametreleri
input int      bars_to_save=10; // Çubukların sayısı
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string  filename=_Symbol+"_rates.bin";
   MqlRates rates[];
//---
   int copied=CopyRates(_Symbol,_Period,0,bars_to_save,rates);
   if(copied!=-1)
     {
      PrintFormat(" CopyRates(%s) ile %d çubuk kopyalandı",_Symbol,copied);
      //---  Fiyatların dosyaya yazılması
      if(!FileSave(filename,rates,FILE_COMMON))
         PrintFormat("FileSave() başarısız oldu, hata=%d",GetLastError());
     }
   else
      PrintFormat("CopyRates(%s) başarısız oldu, hata=%d",_Symbol,GetLastError());
//--- Şimdi fiyatları dosyadan okutalım
   ArrayFree(rates);
   long count=FileLoad(filename,rates,FILE_COMMON);
   if(count!=-1)
     {
      Print("Time\tOpen\tHigh\tLow\tClose\tTick Voulme\tSpread\tReal Volume");
      for(int i=0;i<count;i++)
        {
         PrintFormat("%s\t%G\t%G\t%G\t%G\t%I64u\t%d\t%I64u",
                     TimeToString(rates[i].time,TIME_DATE|TIME_SECONDS),
                     rates[i].open,rates[i].high,rates[i].low,rates[i].close,
                     rates[i].tick_volume,rates[i].spread,rates[i].real_volume);
        }
     }
  }

Ayrıca bakınız

Yapılar ve Sınıflar, FileReadArray, FileReadStruct, FileSave