- FileSelectDialog
- FileFindFirst
- FileFindNext
- FileFindClose
- FileIsExist
- FileOpen
- FileClose
- FileCopy
- FileDelete
- FileMove
- FileFlush
- FileGetInteger
- FileIsEnding
- FileIsLineEnding
- FileReadArray
- FileReadBool
- FileReadDatetime
- FileReadDouble
- FileReadFloat
- FileReadInteger
- FileReadLong
- FileReadNumber
- FileReadString
- FileReadStruct
- FileSeek
- FileSize
- FileTell
- FileWrite
- FileWriteArray
- FileWriteDouble
- FileWriteFloat
- FileWriteInteger
- FileWriteLong
- FileWriteString
- FileWriteStruct
- FileLoad
- FileSave
- FolderCreate
- FolderDelete
- FolderClean
FileOpen
La funzione apre il file con il nome e flag specificati.
int FileOpen(
|
Parametri
file_name
[in] Il nome del file può contenere sottocartelle. Se il file è aperto per la scrittura, queste sottocartelle verranno create se non ce ne sono.
open_flags
[in] la combinazione di flags determina la modalità di operazione per il file. I flags sono definiti come segue:
FILE_READ il file è aperto per la lettura
FILE_WRITE il file è aperto per la scrittura
FILE_BIN modalità lettura-scrittura binaria (nessuna conversione da string e per string)
FILE_CSV file di tipo csv (tutti gli elementi registrati vengono convertiti in tipo unicode o ansi, e vengono separati da un delimitatore)
FILE_TXT un semplice file di testo (lo stesso del csv, ma un delimitatore non viene preso in considerazione)
FILE_ANSI righe di tipo ANSI (simboli a singolo-byte)
FILE_UNICODE righe di tipo UNICODE (caratteri a doppio-byte)
FILE_SHARE_READ lettura condivisa da diversi programmi
FILE_SHARE_WRITE scrittura condivisa da diversi programmi
FILE_COMMON locazione nel file in una cartella condivisa per tutti i terminali client \Terminal\Common\Files
delimitatore='\t
[in] valore che deve essere usato come un separatore nel file txt o cvs. Se il delimitatore del file csv non viene specificato, il suo default è tab. Se il delimitatore del file txt non viene specificato, allora non viene usato nessun separatore. Se il separatore non è chiaramente impostato a 0, allora non viene usato nessun separatore.
codepage=CP_ACP
[in] Il valore del codice pagina. Per i codici pagina più usati, provvedere appropriate costanti.
Valore restituito
Se un file è stato aperto con successo, la funzione restituisce l'handle file, che è quindi usato per accedere ai dati del file. In caso di fallimento restituisce INVALID_HANDLE.
Nota
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.
Assicurarsi di impostare il flag FILE_ANSI se il file deve essere letto in una codifica specifica (il parametro codepage con il valore una pagina di codice è specificato). Se non esiste alcun flag FILE_ANSI specificato, il file di testo viene letto in Unicode senza alcuna conversione.
Il file è aperto nella cartella del terminale client, nella sottocartella MQL5\files (o testing_agent_directory\MQL5\files in caso di testing). Se FILE_COMMON viene specificato tra i flags, il file viene aperto ina una cartella condivisa per tutti i terminali client MetaTrader 5.
Le "Named pipes" possono essere aperte secondo le seguenti regole:
- Il nome della Pipe è una stringa, che dovrebbe avere il seguente aspetto: "\\servername\pipe\pipename", dove nomeserver - nome del server nella rete, mentre pipeName è un nome di pipe. Se vengono usate le pipes sullo stesso computer, il nome del server può essere omesso ma un punto dev'essere inserito al posto di esso"\\.\pipe\pipename". Un client che cerca di collegasi al pipe dovrebbe conoscere il suo nome.
- FileFlush() e FileSeek() dovrebbero essere chiamate all'inizio di un file tra operazioni sequenziali di lettura della pipe e scrittura ad essa.
Un simbolo speciale '\' viene utilizzato nelle stringhe mostrate. Pertanto, '\' dovrebbe essere raddoppiata quando si scrive un nome in un'applicazione MQL5. Ciò significa che l'esempio di cui sopra dovrebbe avere il seguente aspetto nel codice: "\\\\servername\\pipe\\pipename".
Ulteriori informazioni su come lavorare con le named pipes possono essere trovate nell'articolo "Comunicare con MetaTrader 5 tramite Named Pipe senza utilizzare DLL".
Esempio:
//+--------------------------------------------------------------------------------+
|
Vedi anche
Uso di un Codepage, FileFindFirst, FolderCreate, Flags di apertura file