Funzioni con i File

Questo è un gruppo di funzioni per lavorare con file.

Per motivi di sicurezza, il lavoro con i file è strettamente controllato nel linguaggio MQL5. I file con cui sono condotte le operazioni di file utilizzando i mezzi MQL5, non possono esservi al di fuori della sandbox del file.

Ci sono due directory (con le sottodirectory) in cui i file di lavoro possono essere ubicati:

  • terminal_data_folder\MQL5\FILES\ (nel menu del terminale scegliere di visualizzare "File" - "Apri la directory dei dati");
  • la cartella comune per tutti i terminali installati in un computer - di solito si trova nella directory C:\Documents and Settings\All Users\Application Data\MetaQuotes\Terminal\Common\Files.

C'è un metodo di programma per ottenere nomi di questi cataloghi utilizzando la funzione TerminalInfoString(), utilizzando l'enumerazione ENUM_TERMINAL_INFO_STRING

//--- Cartella che memorizza i dati del terminale
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
//--- Cartella comune per tutti i terminali client
   string common_data_path=TerminalInfoString(TERMINAL_COMMONDATA_PATH);

Lavorare con i file da altre directory è proibito.

Le funzioni dei file permettono di lavorare con i cosiddetti "named pipe". Per fare questo, è sufficiente chiamare la funzione FileOpen() con parametri appropriati.

Funzione

Azione

FileSelectDialog

Crea una finestra di dialogo di apertura/creazione di file o cartelle

FileFindFirst

Avvia la ricerca di file in una directory secondo il filtro specificato

FileFindNext

Continua la ricerca iniziata dalla funzione FileFindFirst()

FileFindClose

Chiude l'handle di ricerca

FileOpen

Apre un file con nome e flag specificati

FileDelete

Elimina un file specificato

FileFlush

Scrive su un disco tutti i dati rimasti nel buffer input/output del file

FileGetInteger

Ottiene una proprietà integer di un file

FileIsEnding

Definisce la fine di un file nel processo di lettura

FileIsLineEndin

Definisce la fine di una riga in un file di testo nel processo di lettura

FileClose

Chiude un file aperto in precedenza

FileIsExist

Controlla l'esistenza di un file

FileCopy

Copia il file originale da una cartella locale o condivisa in un altro file

FileMove

Sposta o rinomina un file

FileReadArray

Legge array di qualsiasi tipo ad eccezione di string da file di tipo BIN

FileReadBool

Legge dal file di tipo CSV una stringa a partire dalla posizione corrente fino ad un delimitatore (o fino alla fine di una riga di testo), e converte la stringa di lettura per un valore di tipo bool

FileReadDatetime

Legge dal file di tipo CSV una stringa in uno dei formati: "AAAA.MM.GG. HH:MM:SS", "AAAA.MM.GG." o "HH:MM:SS" - e la converte in un valore datetime

FileReadDouble

Legge un valore double dalla posizione corrente del puntatore del file

FileReadFloat

Legge un valore float dalla posizione corrente del puntatore del file

FileReadInteger

Legge valori int, short o char, dalla posizione corrente del puntatore del file

FileReadLong

Legge un valore di tipo long dalla posizione corrente del puntatore del file

FileReadNumber

Legge dal file di tipo CSV una stringa a partire dalla posizione corrente fino ad un delimitatore (o fino alla fine di una riga di testo), e converte la stringa di lettura in valore double

FileReadString

Legge una stringa dalla posizione corrente di un puntatore ad un file da un file

FileReadStruct

Legge il contenuto di un file binario in una struttura passato come parametro, dalla posizione corrente del puntatore del file

FileSeek

Sposta la posizione del puntatore del file di un determinato numero di byte rispetto alla posizione specificata

FileSize

Restituisce la grandezza del corrispondente file aperto

FileTell

Restituisce la posizione corrente del puntatore del file del corrispondente file aperto

FileWrite

Scrive dati in un file di tipo CSV o TXT

FileWriteArray

Scrive array di qualsiasi tipo ad eccezione di string in un file di tipo BIN

FileWriteDouble

Scrive il valore di tipo double dalla posizione corrente di un puntatore di un file in un file binario

FileWriteFloat

Scrive il valore di tipo float dalla posizione corrente di un puntatore di un file in un file binario

FileWriteInteger

Scrive il valore di tipo int dalla posizione corrente di un puntatore di un file in un file binario

FileWriteLong

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

FileWriteString

Scrive il valore di un parametro string in un file BIN o TXT a partire dalla posizione corrente del puntatore del file

FileWriteStruct

Scrive il contenuto di una struttura passata come parametro in un file binario, a partire dalla posizione corrente del puntatore del file

FileLoad

Legge tutti i dati di un file binario specificato in un array passato, di tipo numerico o strutture semplici

FileSave

Scrive in un file binario tutti gli elementi di un array passato come parametro

FolderCreate

Crea una cartella nella directory dei file

FolderDelete

Rimuove una directory selezionata. Se la cartella non è vuota, allora non può essere rimossa

FolderClean

Elimina tutti i file presenti nella cartella specificata

Se il file viene aperto per la scrittura usando FileOpen(), tutte le sottocartelle specificate nel percorso verranno create se queste non ci sono .