Transparencias del webinario de programacion de mql4 emitido el 5 de Junio de 2013 sobre tratamiento de ficheros, en colaboracion con XTB.
El webinario esta disponible en el canal de funciondelgrafico de youtube en http://www.youtube.com/funciondelgrafico
2. Ubicación de los ficheros
- /history/<broker>
- /experts/files/
- /tester/files
Si queremos usar otras ubicaciones para
nuestros ficheros, no podremos usar las
funciones para manejo de ficheros de mql4
(Deberemos usar una DLL o desarrollo
externo).
1
3. Handle (ó handler o manejador)
2
- El concepto de handle o handler se usa en el manejo de
ficheros y recursos, en muchos sistemas operativos.
- Un handle es un número que el Sistema Operativo asigna
temporalmente a un fichero cuando este es abierto. El S.O
usa ese handle cada vez que quiere acceder al fichero.
- Hay un área reservada en la memoria principal del
ordenador destinada a almacenar los handles de ficheros.
En todos los Sistemas Operativos se puede cambiar o
reconfigurar el tamaño de esa memoria, que definirá el
número máximo de ficheros que se pueden abrir en ese
sistema.
- En ocasiones, confundido con los file descriptors.
4. Funciones involucradas
2
void FileClose(int handle)
void FileDelete(string filename)
void FileFlush(int handle)
bool FileIsEnding(int handle)
bool FileIsLineEnding(int handle)
int FileOpen(string filename, int mode, int delimiter=‘;’)
int FileOpenHistory(string filename, int mode, int delimiter=‘;’)
int FileReadArray(int handle, void array[], int start, int count)
double FileReadDouble(int handle, int size=DOUBLE_VALUE)
int FileReadInteger(int handle, int size=LONG_VALUE)
5. Funciones involucradas
2
double FileReadNumber(int handle)
string FileReadString(int handle, int length=0)
bool FileSeek(int handle, int offset, int origin)
int FileSize(int handle)
int FileTell(int handle)
int FileWrite(int handle, ...)
int FileWriteArray(int handle, object array[], int start, int count)
int FileWriteDouble(int handle, double value, int size=DOUBLEVALUE)
int FileWriteInteger(int handle, int value, int size=LONG_VALUE)
int FileWriteString(int handle, string value, int length)
6. 3
Modos de apertura de fichero
- FILE_BIN: especifica que el tipo de fichero es binario
- FILE_CSV: especifica que el tipo de fichero es csv
- FILE_READ: abrir fichero en modo lectura. Si el fichero no
está previamente creado, fallará
- FILE_WRITE: abrir fichero en modo escritura. Crea el fichero,
sobreescribiendo valores anteriores. Fallará si el fichero está
abierto por otro proceso.
- FILE_READ|FILE_WRITE: abre el fichero para lectura/
escritura: puede escribir en el fichero, añadiendo el
contenido a lo ya creado.
- Máximo de 32 ficheros abiertos