Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 1016
- Ranking:
- Publicado:
- 2014.01.14 14:36
- Actualizado:
- 2016.11.22 07:33
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
El script intenta mover el archivo de origen desde una subcarpeta de la carpeta local del terminal a un nuevo destino en una subcarpeta en la carpeta compartida de todos los terminales clientes. Los nombres de los archivos y subcapetas se especifican en los parámetros de entrada del script. La ubicación de la carpeta local del terminal puede obtenerse mediante la función TerminalInfoString().
PrintFormat("Ruta hasta la carpeta local del terminal: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH)); PrintFormat("Ruta hasta la carpeta compartida de todos los terminales: %s\\Files\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
Inicialmente, el script utilizará la función FileIsExist() para determinar, si existe el archivo de origen en la ubicación indicada dentro de la carpeta local del terminal, si no es así, dará un mensaje de error. Después, comprobará si existe el archivo indicado como destino. Si el archivo destino no existe, el movimiento se realizará sin utilizar la bandera FILE_REWRITE. En caso contrario, se utilizará dicha bandera, o la operarción no será realizada.
Código:
//--- muestra la ventana con los parámetros de entrada al lanzar el script #property script_show_inputs //--- parámetros de entrada input string InpSrcName="data.txt"; input string InpDstName="newdata.txt"; input string InpSrcDirectory="SomeFolder"; input string InpDstDirectory="OtherFolder"; //+------------------------------------------------------------------+ //| Función de inicio del script | //+------------------------------------------------------------------+ void OnStart() { string local=TerminalInfoString(TERMINAL_DATA_PATH); string common=TerminalInfoString(TERMINAL_COMMONDATA_PATH); //--- receive file paths string src_path; string dst_path; StringConcatenate(src_path,InpSrcDirectory,"//",InpSrcName); StringConcatenate(dst_path,InpDstDirectory,"//",InpDstName); //--- comprueba si existe el archivo origen (si no es así - salimos) if(FileIsExist(src_path)) PrintFormat("Existe el archivo %s en la carpeta %s\\Files\\%s",InpSrcName,local,InpSrcDirectory); else { PrintFormat("Error, no existe el archivo %s",InpSrcName); return; } //--- comprueba si existe el archivo destino if(FileIsExist(dst_path,FILE_COMMON)) { PrintFormat("Existe el archivo %s en la carpeta %s\\Files\\%s",InpDstName,common,InpDstDirectory); //--- el archivo existe, la operación debe realizarse con la bandera FILE_REWRITE ResetLastError(); if(FileMove(src_path,0,dst_path,FILE_COMMON|FILE_REWRITE)) PrintFormat("El archivo %s ha sido movido",InpSrcName); else PrintFormat("Error! Código = %d",GetLastError()); } else { PrintFormat("El archivo %s no existe en la carpeta %s\\Files\\%s",InpDstName,common,InpDstDirectory); //--- el archivo no existe, la operación debe realizarse sin la bandera FILE_REWRITE ResetLastError(); if(FileMove(src_path,0,dst_path,FILE_COMMON)) PrintFormat("Se ha movido el archivo %s",InpSrcName); else PrintFormat("Error! Código = %d",GetLastError()); } //--- el archivo se ha movido; vamos a comprobarlo if(FileIsExist(dst_path,FILE_COMMON) && !FileIsExist(src_path,0)) Print("Operación realizada correctamente!"); else Print("Error!"); }
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1614

Cuando se cambia el símbolo gráfico, cambiará los símbolos para todas las otras gráficas.

Este script muestra un ejemplo del uso de la función FileFlush()

La clase CDownLoadHistory proporciona los métodos de descarga de datos históricos.

El script contiene una clase, que puede utilizarse para resolver expresiones matemáticas y lógicas, definidas como string.