Operaciones con archivos

Éste es el grupo de funciones que se utilizan para operar con los archivos.

Existen dos carpetas (con subcarpetas) en las que se puede colocar los archivos de trabajo:

  • terminal_data_directorio\MQL5\FILES\  (para verla seleccione el punto del menú "Archivo"-"Abrir carpeta de datos" en el terminal);
  • carpeta general de todos los terminales instalados en el ordenador — suele ubicarse en el directorio C:\Documents and Settings\All Users\Application Data\MetaQuotes\Terminal\Common\Files.

Se puede obtener los nombres de estos catálogos de forma de programación empleando la función TerminalInfoString() y usando las enumeraciones ENUM_TERMINAL_INFO_STRING:

//--- Carpeta en la que se guardan los datos del terminal
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
//--- Directorio general de todos los terminales de cliente
   string common_data_path=TerminalInfoString(TERMINAL_COMMONDATA_PATH);

Está prohibido trabajar con los archivos desde otras carpetas.

Las funciones de archivos permiten trabajar con lo que llaman "tuberías nombradas". Para eso sólo hay que llamar a la función FileOpen() con los parámetros correspondientes.

Función

Acción

FileSelectDialog

Crea una ventana de diálogo para crear/abrir un archivo o carpeta

FileFindFirst

Empieza la búsqueda de los archivos en el directorio correspondiente de acuerdo con el filtro especificado

FileFindNext

Sigue con la búsqueda empezada por la función FileFindFirst()

FileFindClose

Cierra el manejador de búsqueda

FileOpen

Abre un archivo con el nombre y banderas especificados

FileDelete

Elimina un archivo especificado

FileFlush

Guarda en el disco todos los datos que se han quedado en el buffer de entrada/salida

FileGetInteger

Obtiene una propiedad del número entero del archivo

FileIsEnding

Determina el final de un archivo en el proceso de lectura

FileIsLineEnding

Determina el fin de una línea en un archivo de texto en el proceso de lectura

FileClose

Cierra un archivo previamente abierto

FileIsExist

Comprueba la existencia de un archivo

FileCopy

Copia el archivo original de una carpeta local o compartida a otro archivo

FileMove

Mueve o renombra un archivo

FileReadArray

Lee los arrays de cualquier tipo, salvo los arrays literales (string) (puede ser un array de estructuras que no contienen las cadenas ni arrays dinámicos) de un archivo binario desde la posición actual del puntero de archivos

FileReadBool

Lee de un archivo del tipo CSV una cadena desde la posición actual hasta el separador (o hasta el final de la línea de texto) y convierte la cadena leída al valor del tipo bool

FileReadDatetime

Lee de un archivo del tipo CSV una cadena de uno de los formatos: "YYYY.MM.DD HH:MI:SS", "YYYY.MM.DD" o "HH:MI:SS" - y la convierte al valor del tipo datetime

FileReadDouble

Lee un número de doble precisión con punto flotante (double) de un archivo binario desde la posición actual del puntero de archivos

FileReadFloat

Lee desde la posición actual del puntero de archivos valor del tipo float

FileReadInteger

Lee de un archivo binario valor del tipo int, short o char dependiendo de la longitud indicada en bytes

FileReadLong

Lee desde la posición actual del puntero de archivos valor del tipo long

FileReadNumber

Lee de un archivo del tipo CSV una cadena desde la posición actual hasta el separador (o hasta el final de la línea de texto) y convierte la cadena leída al valor del tipo double

FileReadString

Lee de un archivo una cadena desde la posición actual del puntero de archivos

FileReadStruct

Lee de un archivo binario el contenido en una estructura que ha sido pasada como un parámetro

FileSeek

Mueve la posición del puntero de archivos a una cantidad de bytes especificada respecto a la posición indicada

FileSize

Devuelve el tamaño de un archivo correspondiente abierto

FileTell

Devuelve la posición actual del puntero de archivos de un archivo correspondiente abierto

FileWrite

Escribe los datos en un archivo del tipo CSV o TXT

FileWriteArray

Escribe los arrays de cualquier tipo (excepto los arrays string) en un archivo del tipo BIN

FileWriteDouble

Escribe el valor del parámetro del tipo double desde la posición actual del puntero de archivos en un archivo binario

FileWriteFloat

Escribe el valor del parámetro del tipo float desde la posición actual del puntero de archivos en un archivo binario

FileWriteInteger

Escribe el valor del parámetro del tipo int desde la posición actual del puntero de archivos en un archivo binario

FileWriteLong

Escribe el valor del parámetro del tipo long desde la posición actual del puntero de archivos en un archivo binario

FileWriteString

Escribe el valor del parámetro del tipo string desde la posición actual del puntero de archivos en un archivo del tipo BIN o TXT

FileWriteStruct

Escribe el contenido de una estructura pasada como un parámetro en un archivo binario desde la posición actual del puntero de archivos

FileLoad

Lee todo el contenido de un archivo binario especificado en una matriz transmitida de tipos numéricos o estructuras sencillas

FileSave

Guarda en un archivo binario todos los elementos de la matriz transmitida como parámetro

FolderCreate

Crea un directorio en la carpeta Files (dependiendo del valor common_flag)

FolderDelete

Elimina un directorio seleccionado. Una carpeta no vacía no puede ser eliminada

FolderClean

Elimina todos los archivos en la carpeta especificada

Si el archivo se abre para escritura usando la función FileOpen(), todas las subcarpetas indicadas en la ruta van a ser creadas en caso si no existen.