Substituição de funções dos arquivos MT4.

 

Olá, pessoal,

Muita gente me perguntou e metacotou fórum sobre funções de manipulação de arquivos.

Eu acho que o MT4 tem muitos bugs nessas funções.

1- Eles não funcionam em backtesting

2- Eles não escrevem fora do caminho dos "MetaTrader 4\\\i1}peritos".

Hoje eu abri meu Visual C++ e escrevi uma dll de manuseio de arquivos para o MT4, espero que vocês gostem, e seu código fonte, e me digam seu .

Configuração:

1- Extraia o caminho"mtguru1.dll" para "MetaTrader 4\xperts\libraries".

2- Extrair o caminho"FilesDemo.mq4" para o "MetaTrader 4\experts\indicators" e compilá-lo.

3- Extrair"gFiles.mqh" para "MetaTrader 4\peritos".

4- Carregar ArquivosDemo de seus Indicadores - não se esqueça de habilitar "Permitir a importação de DLL".

5- Aproveite.

Arquivos anexados:
mtguru1.zip  95 kb
 

Feedback

Olá, pessoal,

Qualquer feedback por favor ?

 

Bem, ainda não o testei. Mas se funcionar...isso é FELIZ!!

Eu chequei o arquivo .mq4 de demonstração, e é tão simples e elegante. Bom trabalho.

O único problema que tenho é o que fazer com as novas linhas.

Como usar o gFile para escrever uma nova linha?

 

Obrigado!

fivewhy:
Bem, eu ainda não o testei. Mas se funcionar...isso é IMPRESCINDÍVEL!!

Eu conferi o arquivo de demonstração .mq4, que é tão simples e elegante. Bom trabalho.

O único problema que tenho é o que fazer com as novas linhas.

Como usar o gFile para escrever uma nova linha?

cinco porquê,

Muito obrigado por seu comentário.

Acho que a questão da nova linha de impressão precisa de algum trabalho da minha parte, Obrigado pela notícia.

 

bem feito , mas as funções de arquivo (assim como muitas outras) podem ser usadas diretamente das dlls API do windows.

exemplo de importação de funções de cópia de arquivo:

#importar "Kernel32.dll".

bool CopyFileA (string source_file, string destination_file, bool if_exist);

com DLLs você pode fazer muitas coisas, como acesso ao banco de dados SQL e assim por diante.

 

onde posso encontrar uma lista de todas as funções disponíveis no kernel32.dll (e em outras janelas .dll's)?

Edit: Encontrei-a. Veja atestado.

Arquivos anexados:
kernel32.txt  306 kb
 

É verdade, mas?

Beluck:
bem feito , mas as funções de arquivo (assim como muitas outras) podem ser usadas diretamente das dlls API do windows.

exemplo de importação da função de cópia de arquivo:

#importar "Kernel32.dll"

bool CopyFileA (string source_file, string destination_file, bool if_exist);

com DLLs você pode fazer muitas coisas, como acesso a banco de dados SQL e assim por diante.

Beluck,

Isso mesmo , mas você poderia me dar .mql demo me mostra como usar as funções do kernel32 CreateFile, OpenFile,WriteFilee ReadFile em MQL4

HANDLE CreateFile(

LPCTSTR lpFileName,

DWORD dwDesiredAccess,

DWORD dwShareMode,

LPSECURITY_ATTRIBUTES lpSecurityAttributes,

DWORD dwCreationDisposition,

DWORD dwFlagsAndAttributes,

HANDLE hTemplateFile

);

HFILE OpenFile(

LPCSTR lpFileName,

LPOFSTRUCT lpReOpenBuff,

UINT uStyle

);

BOOL WriteFile(

HANDLE hFile,

LPCVOID lpBuffer,

DWORD nNumberOfBytesToWrite,

LPDWORD lpNumberOfBytesWritten,

LPOVERLAPPED lpOverlapped

);

BOOL ReadFile(

HANDLE hFile,

LPVOID lpBuffer,

DWORD nNumberOfBytesToRead,

LPDWORD lpNumberOfBytesRead,

LPOVERLAPPED lpOverlapped

);
 

ted

alertas.mqh não faz parte do mtguru1.zip, não pôde executar o FilesDemo? Agradecemos antecipadamente.

 

gFiles.mqh

sx ted:
alertas.mqh não faz parte do mtguru1.zip, não pôde executar o FilesDemo? Agradecemos antecipadamente.

sx ted,

Desculpe, eu quis dizer"gFiles.mqh".

Para executar o FilesDemo:

1- Extrair o caminho"mtguru1.dll" para a"MetaTrader 4\libraries".

2- Extrair o caminho"FilesDemo.mq4" para o caminho"MetaTrader 4\peritos\indicadores" e compilá-lo.

3- Extrair"gFiles.mqh" para"MetaTrader 4\peritos".

4- Carregar ArquivosDemo de seus Indicadores - não se esqueça de habilitar"Permitir a importação de DLL".

 

ted

CodersGuru, graças a você super, tem o equivalente de FileTell()

 

Atualizado!

sx ted:
CodersGuru, obrigado super, você tem o equivalente de FileTell()

sx ted,

Eu atualizei o programa. Agora ele inclui estas funções:

int gFileOpen(string file_name,modo int);

bool gFileWrite(int handle,string data);

bool gFileClose(int handle);

string gFileRead(int handle,int comprimento=0);

void gFileSeek(int handle,int offset, modo int);

bool gFileDelete(string file_name);

int gFileSize(int handle);

int gFileTell(int alça);

bool gFileFlush(int alça);

bool gFileCopy(string source,string distance,bool IfExists);

bool gFileMove(string source,string distance,string distance);

Espero que você goste.

Arquivos anexados:
mtguru1.zip  88 kb