FileWriteLong

Dosya işaretçisinin geçerli konumundan başlayarak long tipindeki parametrenin değerini ikili dosyaya yazar.

Dosya işaretçisinin geçerli konumundan başlayarak long tipindeki parametrenin metne dönüştürülmüş değerini CSV veya metin dosyasına yazar.

uint  FileWriteLong(
   int   file_handle,     // Dosya tanıtıcı değeri
   long  value            // Yazılacak değer
   );

Parametreler

file_handle

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

value

[in] long tipli değer.

Dönüş değeri

Başarılı olursa fonksiyon yazılan bayt sayısını döndürür (ikili dosyaya yazarken — sizeof(long)=8). Dosya işaretçisi aynı bayt sayısı kadar hareket eder.

Not

İkili dosyaya yazma durumunda, long tipinde bir parametreyle FileWrite fonksiyonunu çağırmaya eşdeğerdir

long long_value;
FileWrite(file_handle,long_value);

Örnek:

//+------------------------------------------------------------------+
//|                                           Demo_FileWriteLong.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- script çalıştığında giriş parametrelerinin penceresini göster
#property script_show_inputs
//--- terminalden veri alımı için parametreler
input string          InpSymbolName="EURUSD";           // döviz çifti
input ENUM_TIMEFRAMES InpSymbolPeriod=PERIOD_H1;        // zaman aralığı
input datetime        InpDateStart=D'2013.01.01 00:00'; // veri kopyalamanın başlangıç tarihi
//--- verinin dosyaya yazılması için gereken parametreler
input string          InpFileName="Volume.bin"; // dosya ismi
input string          InpDirectoryName="Data";  // dizin (dosya konumu) ismi
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime date_finish=TimeCurrent();
   long     volume_buff[];
   datetime time_buff[];
   int      size;
//--- hata değerini sıfırla
   ResetLastError();
//--- Her çubuk için tik değerlerini kopyala
   if(CopyTickVolume(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,volume_buff)==-1)
     {
      PrintFormat("Tik hacmi değerleri kopyalanamadı. Hata kodu = %d",GetLastError());
      return;
     }
//--- her bir çubuk için zamanı kopyala
   if(CopyTime(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,time_buff)==-1)
     {
      PrintFormat("Zaman değerleri kopyalanamadı. Hata kodu = %d",GetLastError());
      return;
     }
//--- tampon büyüklüğünü al
   size=ArraySize(volume_buff);
//--- gösterge değerlerini yazmak için dosyayı aç (dosya yoksa, otomatik olarak oluşturulacak)
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("%s dosyası yazma için hazır",InpFileName);
      PrintFormat("Dosya yolu: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- önce, veri örnek büyüklüğünü yaz
      FileWriteLong(file_handle,(long)size);
      //--- zaman ve hacim değerlerini dosyaya yaz
      for(int i=0;i<size;i++)
        {
         FileWriteLong(file_handle,(long)time_buff[i]);
         FileWriteLong(file_handle,volume_buff[i]);
        }
      //--- dosyayı kapat
      FileClose(file_handle);
      PrintFormat("Veri yazıldı, %s dosyası kapatıldı",InpFileName);
     }
   else
      PrintFormat("%s dosyası açılamadı, Hata kodu = %d",InpFileName,GetLastError());
  }

Ayrıca Bakınız

Tamsayı tipleri, FileWriteInteger