Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
Demo_FileCopy - script para MetaTrader 5
- Visualizações:
- 1000
- Avaliação:
- Publicado:
- 2014.01.14 14:01
- Atualizado:
- 2016.11.22 07:33
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
O script demonstra o exemplo de como usar a função FileCopy(). Para isto, o conteúdo de um arquivo é copiado para o outro. Para o sucesso da cópia, o arquivo de origem deve estar na pasta local do terminal com o nome especificado no parâmetro de entrada "InpSrc". A posição da pasta local do terminal pode ser obtida chamando a função TerminalInfoString().
PrintFormat("O caminho para a pasta local do terminal: %s\\Arquivos\\",TerminalInfoString(TERMINAL_DATA_PATH));Primeiramente o script tentará exibir o conteúdo dos arquivos. Se o arquivo de destino não existe, você deve copiar a funçãoFileCopy() sem usar o flag FILE_REWRITE. Se o arquivo de destino já foi criado, então para uma cópia bem sucedida deve ser utilizado o flag FILE_REWRITE.
Código:
//--- Mostra a janela de parâmetros de entrada, ao lançar o script #property script_show_inputs //--- entrada de parâmetros input string InpSrc="pesquisa.txt"; // pesquisa input string InpDst="destino.txt"; // cópia input int InpEncodingType=FILE_ANSI; // ANSI=32 ou UNICODE=64 //+------------------------------------------------------------------+ //| Função iniciar do Script de programa | //+------------------------------------------------------------------+ void OnStart() { //--- Exibir o conteúdo de origem (que deve existir) if(!FileDisplay(InpSrc)) return; //--- verificar se já existe cópia do arquivo (não pode ser criado) if(!FileDisplay(InpDst)) { //--- a cópia do arquivo não existe, copiando sem o flag FILE_REWRITE (copiando corretamente) if(FileCopy(InpSrc,0,InpDst,0)) Print("Arquivo foi copiado!"); else Print("Arquivo não foi copiado!"); } else { //--- já existe cópia do arquivo, tente copiar sem o flag FILE_REWRITE (copiando incorretamente) if(FileCopy(InpSrc,0,InpDst,0)) Print("Arquivo foi copiado!"); else Print("Arquivo não foi copiado!"); //---Conteúdo do arquivo InpDst permanece o mesmo FileDisplay(InpDst); //--- copiar mais uma vez com o flag FILE_REWRITE (copiando corretamente se o arquivo existe) if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE)) Print("Arquivo foi copiado!"); else Print("Arquivo não foi copiado"); } //--- Receber a cópia do arquivo InpSrc FileDisplay(InpDst); } //+------------------------------------------------------------------+ //| Ler conteúdos do arquivo | //+------------------------------------------------------------------+ bool FileDisplay(const string file_name) { //---Redefinir o valor de erro ResetLastError(); //--- abrir o arquivo int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType); if(file_handle!=INVALID_HANDLE) { //--- exibir os conteúdos do arquivo no loop Print("+---------------------+"); PrintFormat("Nome do arquivo = %s",file_name); while(!FileIsEnding(file_handle)) Print(FileReadString(file_handle)); Print("+---------------------+"); //--- fechar o arquivo FileClose(file_handle); return(true); } //--- falha para abertura do arquivo PrintFormat("%s não foi aberto, erro = %d",file_name,GetLastError()); return(false); }
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/1611
O script demonstra o exemplo de como usar a função FileDelete().
The20sv0.20Indicador de sinal de tendência do tipo semáforo.
ATRPivot gera níveis de suporte e resistência considerando o indicador Average True Range (ATR).
Demo_FileFindO script é um exemplo simples de como usar as funções FileFindFirst(), FileFindNext() e FileFindClose().