
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
No había ningún archivo adjunto.
¿Has confirmado que el archivo del que intentas leer existe realmente? Por favor, busca en la carpeta correcta y comprueba... otra cosa, ¿por qué tienes una función llamada filewriting() para LEER de un archivo?
Estimado RaptorUK,
Sí, puedo confirmar que el archivo DAT está en la carpeta MQL4/files. De hecho, he informado que puse una condición si el fileopen tiene éxito y tiene éxito la mayoría de las veces (90%) y el 10% falla al abrir y genera un código de error 5004.
La función filewriting() se llama cuando un fileopen falla. Entonces, la función filewriting intentaría crear un archivo (abrir para escribir) y al final de la función, hacer el fileclose.
He adjuntado el archivo de la sentencia Print() de la carpeta MQL4\logs. He pulsado el botón "Choose File" y he podido comprobar que se muestra el nombre del archivo.
Saludos cordiales,
Raisingfire
Estimado RaptorUK,
Sí, puedo confirmar que el archivo DAT está en la carpeta MQL4/archivos. De hecho, he informado que puse una condición si el fileopen tiene éxito y tiene éxito la mayoría de las veces (90%) y el 10% falla al abrir y genera un código de error 5004.
La función filewriting() se llama cuando un fileopen falla. Entonces, la función filewriting intentaría crear un archivo (abrir para escribir) y al final de la función, hacer el fileclose.
He adjuntado el archivo de la sentencia Print() de la carpeta MQL4\logs. He pulsado el botón "Choose File" y he podido comprobar que se muestra el nombre del archivo.
Saludos cordiales,
Raisingfire
¿De dónde vienen estos archivos? ¿Qué los escribe?
Estimado RaptorUK,
Todos los archivos DAT están destinados a ser archivos temporales para mantener los valores iniciales de ciertos indicadores cada vez que abrimos una posición. Los creamos y utilizamos en nuestros programas.
Utilizamos la función estándar para abrir el archivo para escribir:
fhandle=FileOpen(mf, FILE_BIN|FILE_WRITE);
Escritura de array estándar en los archivos temporales (DAT) :
FileWriteArray(fhandle, mpara, 0, maxori); // donde mpara es el array, Maxori es el tamaño máximo del array
Función estándar de cierre de archivos:
FileClose(fhandle);
Gracias por su ayuda.
Saludos,
Raisingfire
Estimado RaptorUK,
Todos los archivos DAT están destinados a ser archivos temporales para mantener los valores iniciales de ciertos indicadores cada vez que abrimos una posición. Los creamos y utilizamos en nuestros programas.
Usamos la función estándar para abrir el archivo para escribir:
fhandle=FileOpen(mf, FILE_BIN|FILE_WRITE);
Escritura de array estándar en los archivos temporales (DAT) :
FileWriteArray(fhandle, mpara, 0, maxori); // donde mpara es el array, Maxori es el tamaño máximo del array
Función estándar de cierre de archivos:
FileClose(fhandle);
Vale, pero no has respondido a mi pregunta... ¿son escritas por el mismo EA que intenta leerlas? o por un EA, Script o Indicador diferente?
Vale, pero no has respondido a mi pregunta... ¿son escritas por el mismo EA que intenta leerlas? o por un EA, Script o Indicador diferente?
La función de escritura de archivos está en todos en el mismo EA. Cada vez que emitimos un "FILEOPEN", siempre lo seguimos con un "FILECLOSE" después de hacer cierta tarea con él. Por lo tanto, no creo que haya un problema con el archivo bloqueado que se intenta abrir.
Hace mucho tiempo, tuvimos ese tipo de problema donde un archivo bloqueado estaba siendo tratado de ser leído. Y MT4 automáticamente lo reportó en su archivo de registro. Entonces, después de 1 o 2 días, las carpetas de Logs e historial se volvieron enormes en tamaño (cientos de Mbytes), llenas de esos reportes. Entonces, emitimos un FILECLOSE cada vez que hicimos FILEOPEN. El problema se solucionó y las carpetas de logs e historial no volvieron a ser enormes. Ahora, las carpetas de registro e historial combinadas contienen sólo menos de 100 Kbytes (a pesar del código de error 5004 que sigue apareciendo).
Gracias,
Raisingfire
La función de escritura de archivos está en todos en el mismo EA. Cada vez que emitimos un "FILEOPEN", siempre lo seguimos con "FILECLOSE" después de hacer cierta tarea con él. Por lo tanto, no creo que haya un problema con el archivo bloqueado que se intenta abrir.
Hace mucho tiempo, tuvimos ese tipo de problema en el que se intentaba leer un archivo bloqueado. Y MT4 lo reportaba automáticamente en su archivo de registro. Asi que, despues de 1 o 2 dias, las carpetas de Logs e historiales se volvieron enormes en tamaño (cientos de Mbytes), llenas de esos reportes. Entonces, emitimos un FILECLOSE cada vez que hicimos FILEOPEN. El problema se solucionó y las carpetas de logs e historial no volvieron a ser enormes. Ahora, las carpetas de registro e historial combinadas contienen sólo menos de 100 Kbytes (a pesar del código de error 5004 que sigue apareciendo).
Bien, gracias por la información. Me he quedado sin ideas... todo lo que puedo sugerir ahora es crear un EA de prueba que reproduzca el problema que puedes publicar aquí y enviar a MetaQuotes como parte de un ticket de Service Desk y pedirles que lo investiguen.
Estimado RaptorUK,
Gracias por toda la ayuda e información de todos modos. Intentaré hacer lo que me has dicho.
Una vez más, gracias.
Saludos,
Estimado RaptorUK,
Gracias por toda la ayuda e información de todos modos. Intentaré hacer lo que me has dicho.
Una vez más, gracias.
Saludos,
¿Hay alguna solución para el error 5004, por favor? Estoy recibiendo el mismo mensaje de error al intentar escribir en un archivo.
Estoy en la versión 765.
Su ayuda es muy apreciada.