FileWriteLong

Scrive in un file binario il valore del parametro di tipo long dalla posizione corrente del puntatore del file.

Scrive in un file CSV o di testo il valore del parametro di tipo long convertito in testo dalla posizione corrente del puntatore del file.

uint  FileWriteLong(
   int   file_handle,     // File handle
   long  value            // Valore da scrivere
   );

Parametri

file_handle

[in] Il descrittore di file restituito da FileOpen().

valore

[in] Valore di tipo long.

Valore restituito

In caso di successo la funzione restituisce il numero di byte scritti (durante la scrittura in un file binario — sizeof(long)=8). Il puntatore del file viene spostato dello stesso numero di byte.

Nota

Nel caso di scrittura in un file binario, equivale alla chiamata della funzione FileWrite con un parametro di tipo long

long long_value;
FileWrite(file_handle,long_value);

Esempio:

//+--------------------------------------------------------------------------------+
//|                                                         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"
//--- mostra la finestra dei parametri di input quando si lancia lo script
#property script_show_inputs
//--- parametri per la ricezione dei dati dal terminale
input string          InpSymbolName="EURUSD";           // coppia di valute
input ENUM_TIMEFRAMES InpSymbolPeriod=PERIOD_H1;        // time frame
input datetime        InpDateStart=D'2013.01.01 00:00'; // data di inzio copiatura dati
//--- parameters for writing data to the file
input string          InpFileName="Volume.bin"; // nome file
input string          InpDirectoryName="Data";  // nome directory
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
   datetime date_finish=TimeCurrent();
   long     volume_buff[];
   datetime time_buff[];
   int      size;
//--- resetta il valore dell' errore
   ResetLastError();
//--- copia i volumi tick per ogni barra
   if(CopyTickVolume(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,volume_buff)==-1)
     {
      PrintFormat("Fallimento nel copiare i valori del volume tick. Codice Errore = %d",GetLastError());
      return;
     }
//--- copia l'orario per ogni barra
   if(CopyTime(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,time_buff)==-1)
     {
      PrintFormat("Fallimento nel copiare i valori temporali. Codice Errore = %d",GetLastError());
      return;
     }
//--- riceve la grandezza del buffer
   size=ArraySize(volume_buff);
//--- apre il file per la scrittura dei valori indicatore (se il file è assente, verrà creato automaticamente)
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("il file %s è disponibile per la scrittura",InpFileName);
      PrintFormat("Percorso file: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- prima, scrive la grandezza dei dati campione
      FileWriteLong(file_handle,(long)size);
      //--- scrive i valori orari e di volume, nel file
      for(int i=0;i<size;i++)
        {
         FileWriteLong(file_handle,(long)time_buff[i]);
         FileWriteLong(file_handle,volume_buff[i]);
        }
      //--- chiude il file
      FileClose(file_handle);
      PrintFormat("I dati vengono scritti, il file %s è chiuso",InpFileName);
     }
   else
      PrintFormat("Fallimento nell'aprire il file %s, Codice errore = %d",InpFileName,GetLastError());
  }

Vedi anche

Tipi Interi, FileWriteInteger