Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Visualizações:
1000
Avaliação:
(29)
Publicado:
2014.01.14 13:58
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 classifica um por um todos os arquivos CSV na pasta geral de todos os terminais de clientes para obter seus tamanhos. Depois de obter o tamanho, o seu valor é comparado com o valor limite,"InpThresholdSize", e de acordo com o resultado o arquivo é colocado na pasta nomeada "InpBigFolderName" ou na "InpSmallFolderName". Assim os arquivos de grandes e pequenas dimensões são classificados.

Além de usar a função FileSize(), existem também as funções FileFindFirst(), FileFindNext() e FileFindClose() utilizadas no script para classificar os arquivos e a função FileMove() para movê-los.

Código:

//--- mostra a janela dos parâmetros de entrada ao lançar o script
#property script_show_inputs
//--- parâmetros de entrada
input ulong  InpThresholdSize=20;        // tamanho limite do arquivo em kilobytes
input string InpBigFolderName="grande";     // pasta para arquivos grandes
input string InpSmallFolderName="pequeno"; // pasta para arquivos pequenos
//+------------------------------------------------------------------+
//| Função iniciar do Script de programa                             |
//+------------------------------------------------------------------+
void OnStart()
  {
   string   file_name;      // variável para armazenar os nomes dos arquivos
   string   filter="*.csv"; // filtrar para pesquisar os arquivos
   ulong    file_size=0;    // tamanho do arquivo em bites
   int      size=0;         // número de arquivos
//--- imprimir o caminho para o arquivo que vamos trabalhar
   PrintFormat("Trabalhando na pasta %s\\Arquivos\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
//--- receber o handle de pesquisa na raiz da pasta comum de todos os terminais
   long search_handle=FileFindFirst(filter,file_name,FILE_COMMON);
//--- verificar se FileFindFirst() foi executado com sucesso
   if(search_handle!=INVALID_HANDLE)
     {
      //--- mover arquivos no loop de acordo com seu tamanho
      do
        {
         //--- abrir o arquivo
         ResetLastError();
         int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON);
         if(file_handle!=INVALID_HANDLE)
           {
            //--- receber o tamanho do arquivo
            file_size=FileSize(file_handle);
            //--- fechar o arquivo
            FileClose(file_handle);
           }
         else
           {
            PrintFormat("Falha ao abrir o arquivo %s, Erro código = %d",file_name,GetLastError());
            continue;
           }
         //--- imprimir o tamanho do arquivo
         PrintFormat("Tamanho do arquivo %s é igual a %d bytes",file_name,file_size);
         //---definir o caminho para mover o arquivo
         string path;
         if(file_size>InpThresholdSize*1024)
            path=InpBigFolderName+"//"+file_name;
         else
            path=InpSmallFolderName+"//"+file_name;
         //--- mover o arquivo
         ResetLastError();
         if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON))
            PrintFormat("arquivo %s está sendo movido",file_name);
         else
            PrintFormat("Erro, código = %d",GetLastError());
        }
      while(FileFindNext(search_handle,file_name));
      //--- fechar o handle de pesquisa
      FileFindClose(search_handle);
     }
   else
      Print("Arquivos não encontrados!");
  }

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/1633

Cyber Cycle Adaptativa Cyber Cycle Adaptativa

Cyber Cycle Adaptativa se adapta constantemente à mudança dos ciclos de um ativo financeiro do mercado.

Demo_FileTell Demo_FileTell

O script demonstra o exemplo de como usar a função FileTell().

Projeções Daily Range Projeções Daily Range

Previsão da próxima mudança de intervalo do candle em gráfico diário.

Demo_FileReadDouble Demo_FileReadDouble

O indicador demonstra um exemplo de como usar a função FileReadDouble().