Funções de Arquivo

Este é um grupo de funções para trabalhar com arquivos.

Por razões de segurança, o trabalho com arquivos é estritamente controlada na língua MQL5. Arquivos com que as operações de arquivo são conduzidas usando os meios MQL5, não podem estar fora da caixa de proteção do arquivo.

Existem dois diretórios(com subdiretórios) onde os arquivos de trabalho estão localizados:

  • terminal_data_folder\MQL5\FILES\ (no menu do terminal selecione para ver "Arquivo" - "Abrir o diretório de dados");
  • na pasta comum para todos os terminais instalados no computador - geralmente no diretório C:\Documents and Settings\All Users\Application Data\MetaQuotes\Terminal\Common\Files (C:\Documentos e Configurações\Todos Usuários\Dados de Aplicativos\MetaQuotes\Comum\Files).

Existe um método de programa para obter nome destes catálogos usando a função TerminalInfoString(), usando a enumeração ENUM_TERMINAL_INFO_STRING:

//--- Pasta que armazena os dados do terminal
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
//--- Pasta comum para todos os terminais de clientes
   string common_data_path=TerminalInfoString(TERMINAL_COMMONDATA_PATH);

Trabalhar com arquivos de outros diretórios é proibido.

Funções de arquivo permitem trabalhar com os assim chamados "pipes nomeados". Para isto, chamar simplesmente a função FileOpen() com o parâmetro apropriado.

Função

Ação

FileSelectDialog

Cria uma caixa de diálogo para abrir/criar um arquivo ou pasta

FileFindFirst

Começa a busca de arquivos em um diretório de acordo com o filtro especificado

FileFindNext

Continua a busca iniciada pela função FileFindFirst()

FileFindClose

Fecha o manipulador de busca

FileOpen

Abre um arquivo com o nome e bandeira especificada

FileDelete

Deleta um arquivo especificado

FileFlush

Escreve para um disco todos os dados remanescentes dentro da entrada/saída do arquivo buffer

FileGetInteger

Obtém uma propriedade inteira de um arquivo

FileIsEnding

Define o final do arquivo em processo de leitura

FileIsLineEnding

Define o final da linha do arquivo de texto em processo de leitura

FileClose

Fecha um arquivo aberto previamente

FileIsExist

Verifica a e existência de um arquivo

FileCopy

Copia o arquivo original a partir de um local ou de uma pasta compartilhada em outro arquivo

FileMove

Move ou renomeia um arquivo

FileReadArray

Lê arrays de qualquer tipo, exceto para a seqüência a partir do arquivo do tipo BIN

FileReadBool

Lê a partir de arquivo do tipo CSV uma seqüência a partir da posição atual até um delimitador (ou até o fim de uma linha de texto) e converte a seqüência de leitura para um valor do tipo bool

FileReadDatetime

Lê a partir do arquivo do tipo CSV uma seqüência de um dos formatos: "YYYY.MM.DD HH:MM:SS", "YYYY.MM.DD" or "HH:MM:SS" - e converte-os dentro de valor de datetime

FileReadDouble

Lê um valor double a partir da posição atual do ponteiro de arquivo

FileReadFloat

Lê um valor float a partir da posição atual do ponteiro de arquivo

FileReadInteger

Lê um valor int, short ou char a partir da posição atual do ponteiro de arquivo

FileReadLong

Lê um valor do tipo long a partir da posição atual do ponteiro de arquivo

FileReadNumber

Lê a partir de arquivo do tipo CSV uma seqüência a partir da posição atual até um delimitador (ou até o fim de uma linha de texto) e converte a seqüência de leitura em um valor double

FileReadString

Lê uma seqüência a partir da posição atual do ponteiro a partir de um arquivo

FileReadStruct

Lê o conteúdo de um arquivo binário em uma estrutura passada como um parâmetro, a partir da posição atual do ponteiro do arquivo

FileSeek

Move a posição do ponteiro de arquivo por um determinado número de bytes em relação à posição especificada

FileSize

Retorna o tamanho da abertura de um arquivo correspondente

FileTell

Retorna a posição atual do ponteiro de um arquivo da abertura de arquivo correspondente

FileWrite

Escreve dados para um arquivo de CSV ou tipo TXT

FileWriteArray

Escreve arrays de qualquer tipo exceto para seqüência em um arquivo do tipo BIN

FileWriteDouble

Escreve valor do tipo double a partir da posição atual de um ponteiro de arquivo em um arquivo binário

FileWriteFloat

Escreve o valor do tipo float a partir da posição atual de um ponteiro de arquivo em um arquivo binário

FileWriteInteger

Escreve o valor do tipo int a partir da posição atual de um ponteiro de arquivo em um arquivo binário

FileWriteLong

Escreve o valor do tipo long a partir da posição atual de um ponteiro de arquivo em um arquivo binário

FileWriteString

Escreve o valor de um parâmetro da string em um arquivo BIN ou TXT iniciando a partir da posição atual do ponteiro de arquivo

FileWriteStruct

Escreve o conteúdo de uma estrutura passada como um parâmetro em um arquivo binário, começando a partir da posição atual do ponteiro de arquivo

FileLoad

Ele lê todo o conteúdo do arquivo binário especificado numa variedade transferida de tipos numéricos ou estruturas simples

FileSave

Armazena no arquivo binário todos os elementos da matriz transferida como parâmetro

FolderCreate

Cria uma pasta dentro do diretório de arquivo

FolderDelete

Remove um diretório selecionado. Se a pasta não estiver vazia, então ele não pode ser removido

FolderClean

Deleta todos os arquivos dentro da pasta especificada

Se o arquivo é aberto para escrever usando FileOpen(),todas as sub-pastas especificadas no caminho serão criadas se elas não existirem.