MT4文件功能替换。

 

嗨,伙计们。

很多人问我和metaquotes论坛关于文件处理功能。

我认为MT4的这些功能有很多缺陷。

1- 他们在回测 中不工作

2- 他们不写 "MetaTrader 4/experts/files "路径之外的内容。

今天我打开我的Visual C++,为MT4写了一个文件处理dll,我希望你喜欢它,和它的源代码,并告诉我你的

设置。

1- 提取"mtguru1.dll"到"MetaTrader 4/experts/libraries " 路径。

2- 提取"FilesDemo.mq4"到"MetaTrader 4/experts/indicators " 路径并编译它。

3- 提取"gFiles.mqh"到"MetaTrader 4experts\include"

4- 从你的指标加载FilesDemo - 不要忘记启用"允许DLL导入"

5- 享受。

附加的文件:
mtguru1.zip  95 kb
 

反馈意见

嗨,伙计们。

有什么反馈吗?

 

好吧,我还没有测试过它。但如果它能起作用,那就太了不起了!!。

查看了 演示的.mq4文件,它是如此简单和优雅。干得好。

我唯一的问题是如何处理新行。

我如何使用gFile来写新行?

 

谢谢!

fivewhy:
嗯,我还没有测试。但如果它能起作用,那就太了不起了!!。

我查看了演示的.mq4文件,它是如此简单和优雅。干得好。

我唯一的问题是如何处理新行。

我如何使用gFile来写新行?

fivewhy。

非常感谢你的评论。

我认为新行的打印问题需要我做一些工作,谢谢你的通知。

 

做得好 ,但文件函数(以及许多其他的)可以直接从windows API dlls中使用。

文件复制函数导入的例子。

#import "Kernel32.dll"

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

使用DLLs你可以做很多事情,比如SQL数据库访问等等。

 

我在哪里可以找到kernel32.dll(和其他windows .dll)中所有可用功能 的列表?

编辑:找到了。见附件。

附加的文件:
kernel32.txt  306 kb
 

这是对的,但是?

Beluck:
做得好, 但文件函数(以及许多其他的)可以直接从windows API dlls中使用。

文件复制功能导入的例子。

#import "Kernel32.dll"

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

使用DLLs,你可以做很多事情,比如SQL数据库访问等等。

Beluck,

这是正确的, 但你能不能给我.mql 演示,告诉我如何在MQL4中使用kernel32函数 CreateFile,OpenFile,WriteFileReadFile

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不是mtguru1.zip的一部分,无法运行FilesDemo?先谢谢你了。

 

gFiles.mqh

sx ted:
alerts.mqh不是mtguru1.zip的一部分,不能运行FilesDemo?请提前感谢您。

sx ted,

对不起,我是说"gFiles.mqh"

要运行FilesDemo

1- 将"mtguru1.dll"提取到"MetaTrader 4/experts/libraries"路径。

2- 提取"FilesDemo.mq4"到"MetaTrader 4/experts/indicators"路径并编译它。

3- 提取"gFiles.mqh"到"MetaTrader 4experts\include"。

4- 从您的指标加载FilesDemo - 不要忘记启用"允许DLL导入"。

 

ted

CodersGuru,谢谢你,超级,你是否有FileTell()的等价物?

 

更新了!

sx ted:
CodersGuru,谢谢你,你是否有FileTell()的等价物?

sx ted,

我已经更新了这个程序。 现在它包括这些函数。

intgFileOpen(string file_name,int mode);

boolgFileWrite(int handle,string data);

boolgFileClose(int handle);

stringgFileRead(int handle,int length=0);

voidgFileSeek(int handle,int offset, int mode);

boolgFileDelete(string file_name);

intgFileSize(int handle);

intgFileTell(int handle);

boolgFileFlush(int handle);

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

boolgFileMove(string source,string distance)。

我希望你喜欢它。

附加的文件:
mtguru1.zip  88 kb