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
Demo_FileCopy - script para MetaTrader 5
- Visualizaciones:
- 1034
- Ranking:
- Publicado:
- 2014.01.14 14:37
- 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
Este script muestra un ejemplo del uso de la función FileCopy(). Para ello el contenido de un archivo se copia en otro. Para que la copia se realice con éxito el archivo de origen debe existir en la carpeta local del terminal, con el nombre indicado en el parámetro de entrada "InpSrc". La ubicación de la carpeta local del terminal puede ser obtenida mediante la función TerminalInfoString().
PrintFormat("Ruta hacia la carpeta local del terminal: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));Inicialmente el script intentará visualizar el contenido de los archivos. Si el arcivo de destino no existe, se debe llamar a la función FileCopy() sin utilizar la bandera FILE_REWRITE flag. Si el archivo destino ya ha sido creado, para que la copia tenga éxito se debe utilizar la bandera FILE_REWRITE.
Código:
//--- muestra la ventana con los parámetros de entrada al iniciar el script #property script_show_inputs //--- parámetros de entrada input string InpSrc="source.txt"; // origen input string InpDst="destination.txt"; // destino input int InpEncodingType=FILE_ANSI; // ANSI=32 o UNICODE=64 //+------------------------------------------------------------------+ //| Función de arranque del script | //+------------------------------------------------------------------+ void OnStart() { //--- visualiza el contenido del archivo origen (si existe) if(!FileDisplay(InpSrc)) return; //--- comprueba si el archivo destino ya existe (puede que no haya sido creado) if(!FileDisplay(InpDst)) { //--- el archivo destino no existe, se copia sin la bandera FILE_REWRITE flag (copiado correcto) if(FileCopy(InpSrc,0,InpDst,0)) Print("El archivo ha sido copiado!"); else Print("El archivo no se ha copiado!"); } else { //--- el archivo destino ya existe, intenta copiar sin la bandera FILE_REWRITE (copiado incorrecto) if(FileCopy(InpSrc,0,InpDst,0)) Print("El archivo ha sido copiado!"); else Print("El archivo no ha sido copiado!"); //--- El contenido del archivo InpDst no ha sido modificado FileDisplay(InpDst); //--- intenta nuevamente la copia con la bandera FILE_REWRITE (copiado correcto si el archivo ya existe) if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE)) Print("El archivo ha sido copiado!"); else Print("El archivo no ha sido copiado!"); } //--- recibe la copia del archivo InpSrc FileDisplay(InpDst); } //+------------------------------------------------------------------+ //| Lee el contenido del archivo | //+------------------------------------------------------------------+ bool FileDisplay(const string file_name) { //---reset del valor de error ResetLastError(); //--- abre el archivo int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType); if(file_handle!=INVALID_HANDLE) { //--- muestra el contenido en un ciclo Print("+---------------------+"); PrintFormat("Nombre del archivo = %s",file_name); while(!FileIsEnding(file_handle)) Print(FileReadString(file_handle)); Print("+---------------------+"); //--- cierra el archivo FileClose(file_handle); return(true); } //--- error al abrir el archivo PrintFormat("%s no ha sido abierto, error = %d",file_name,GetLastError()); return(false); }
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1611
Este script muestra un ejemplo del uso de la función FileDelete()
cIntSpeechHabla el texto especificado utilizando el motor de voz.
Una clase para la creación y producción de imágenes BMP.
Demo_FileFindEste script es un ejemplo simple del uso de las funciones FileFindFirst(), FileFindNext() and FileFindClose()