Remplacement des fonctions des fichiers MT4.

 

Bonjour à tous,

Beaucoup de personnes m'ont demandé, ainsi qu'au forum metaquotes, des informations sur les fonctions de traitement des fichiers.

Je pense que MT4 a beaucoup de bugs dans ces fonctions.

1- Elles ne fonctionnent pas en backtesting

2- Elles n'écrivent pas en dehors du chemin "MetaTrader 4\experts\files".

Aujourd'hui j'ai ouvert mon Visual C++ et j'ai écrit une dll de gestion de fichiers pour MT4, j'espère que vous l'apprécierez, ainsi que son code source, et que vous me direz votre .

Configuration :

1- Extraire"mtguru1.dll" vers le chemin "MetaTrader 4\experts\libraries".

2- Extraire"FilesDemo.mq4" vers le chemin "MetaTrader 4\experts\indicators" et le compiler.

3- Extrayez"gFiles.mqh" vers le chemin "MetaTrader 4\experts\include".

4- Chargez FilesDemo depuis vos Indicateurs - n'oubliez pas d'activer "Allow DLL Import".

5- Profitez-en.

Dossiers :
mtguru1.zip  95 kb
 

réactions au sujet de

Bonjour à tous,

Un commentaire, s'il vous plaît ?

 

Eh bien, je ne l'ai pas testé. Mais si ça marche, c'est génial !

J'ai regardé le fichier .mq4 de démonstration, et il est si simple et élégant. Bon travail.

Le seul problème que j'ai est ce qu'il faut faire pour les nouvelles lignes.

Comment puis-je utiliser gFile pour écrire une nouvelle ligne ?

 

Merci !

fivewhy:
Eh bien, je ne l'ai pas testé. Mais si ça marche, c'est génial !

J'ai vérifié le fichier .mq4 de démonstration, et il est si simple et élégant. Bon travail.

Le seul problème que j'ai est de savoir ce qu'il faut faire pour les nouvelles lignes.

Comment utiliser gFile pour écrire une nouvelle ligne ?

fivewhy,

Merci beaucoup pour votre commentaire.

Je pense que le problème de l'impression des nouvelles lignes nécessite un peu de travail de ma part, merci pour la remarque.

 

Bien joué , mais les fonctions de fichiers (ainsi que beaucoup d'autres) peuvent être utilisées directement à partir des dlls API de Windows.

exemple d'importation de fonction de copie de fichier :

#importation de "Kernel32.dll".

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

avec les DLLs vous pouvez faire beaucoup de choses, comme l'accès aux bases de données SQL et ainsi de suite.

 

Où puis-je trouver une liste de toutes les fonctions disponibles dans kernel32.dll (et autres .dll de Windows) ?

Edit : Trouvé. Voir ci-joint.

Dossiers :
kernel32.txt  306 kb
 

C'est vrai, mais ?

Beluck:
bien joué , mais les fonctions de fichier (ainsi que beaucoup d'autres) peuvent être utilisées directement à partir des dlls API de Windows.

exemple d'importation de la fonction de copie de fichier :

#importation de "Kernel32.dll

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

Avec les DLLs, vous pouvez faire beaucoup de choses, comme l'accès aux bases de données SQL et ainsi de suite.

Beluck,

C'est vrai , mais pouvez-vous me donner une démo .mql qui me montre comment utiliser les fonctions CreateFile, OpenFile, WriteFile et ReadFile de Kernel32 dans 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

alerts.mqh ne fait pas partie de mtguru1.zip, n'a pas pu exécuter FilesDemo ? En vous remerciant par avance.

 

gFiles.mqh

sx ted:
alerts.mqh ne fait pas partie de mtguru1.zip, ne peut pas exécuter FilesDemo ? En vous remerciant par avance.

sx ted,

Je suis désolé, je voulais dire"gFiles.mqh".

Pour exécuter FilesDemo :

1- Extraire"mtguru1.dll" vers le chemin"MetaTrader 4\experts\libraries".

2- Extrayez"FilesDemo.mq4" vers le chemin"MetaTrader 4\experts\indicators" et compilez-le.

3- Extrayez"gFiles.mqh" vers le chemin"MetaTrader 4\experts\include".

4- Chargez FilesDemo depuis vos Indicateurs - n'oubliez pas d'activer"Allow DLL Import".

 

ted

CodersGuru, merci beaucoup, avez-vous l'équivalent de FileTell() ?

 

Mise à jour !

sx ted:
CodersGuru, merci beaucoup, avez-vous l'équivalent de FileTell() ?

sx ted,

J'ai mis à jour le programme. Maintenant il inclut ces fonctions :

int gFileOpen(string file_name,int mode) ;

bool gFileWrite(int handle,string data) ;

bool gFileClose(int handle) ;

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

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

bool gFileDelete(string file_name) ;

int gFileSize(int handle) ;

int gFileTell(int handle) ;

bool gFileFlush(int handle) ;

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

bool gFileMove(string source,string distance) ;

J'espère que vous l'apprécierez.

Dossiers :
mtguru1.zip  88 kb