FileSave

Parametre şeklinde geçirilen dizinin tüm elemanlarını bir ikili dosyaya yazar. Bu fonksiyon sayesinde sayısal tipli dizileri ve basit yapıları tek bir dizgi şeklinde kolayca dosyaya yazabilirsiniz.

bool  FileSave(
   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\ konumuna yazılır
   );

Parametreler

file_name

[in]  Dizinin yazılacağı dosyanın ismi.

buffer

[in]  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) konumuna yazılır.

Dönüş Değeri

Başarısızlık durumunda 'false' dönüşü yapar.

Örnek:

//+------------------------------------------------------------------+
//|                                                Demo_FileSave.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 script_show_inputs
//--- giriş parametreleri
input int      ticks_to_save=1000; // Tiklerin sayısı
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string  filename=_Symbol+"_ticks.bin";
   MqlTick ticks[];
u//---
   int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);
   if(copied!=-1)
     {
      PrintFormat(" CopyTicks(%s) ile %d tik kopyaladı",_Symbol,copied);
      //--- tik geçmişi eşitlenmişse hata kodu sıfıra eşittir
      if(!GetLastError()==0)
         PrintFormat("%s: Tikler eşitlenmedi, hata=%d",_Symbol,copied,_LastError);
      //---  Tikler dosyaya yazılıyor
      if(!FileSave(filename,ticks,FILE_COMMON))
         PrintFormat("FileSave() başarısız oldu, hata=%d",GetLastError());
     }
   else
      PrintFormat("CopyTicks(%s) başarısız oldu, hata=%d",_Symbol,GetLastError());
//--- Şimdi dosyadan tikleri okuyalım
   ArrayFree(ticks);
   long count=FileLoad(filename,ticks,FILE_COMMON);
   if(count!=-1)
     {
      Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");
      for(int i=0;i<count;i++)
        {
         PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",
         TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,
         ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);
        }
     }
  }

Ayrıca bakınız

Yapılar ve Sınıflar, FileWriteArray, FileWriteStruct, FileLoad, FileWrite