MT4ファイルの機能置換。

 

こんにちは、皆さん。

多くの人が私やmetaquotesフォーラムにファイル処理関数について質問してきました。

私は、MT4はこれらの関数に多くのバグがあると思います。

1-バックテストでは 動作しない。

2- "MetaTrader 4expertsfiles "パスの外には書き込まない。

今日、私はVisual C++を開き、MT4のファイル処理DLLを書いた。私はあなたがそれを楽しむことを願って、そのソースコード、そして私にあなたの を教えてください。

セットアップ

1-"mtguru1.dll"を"MetaTrader 4Expertslibraries" パスに展開する。

2-"FilesDemo.mq4" を"MetaTrader 4 sentencingindicators" パスに展開し、コンパイルする。

3-"gFiles.mqh"を"MetaTrader 4Experts Filterinclude" に展開します。

4- あなたの指標からFilesDemoをロードします -"Allow DLL Import " を有効にするのを忘れないでください。

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);

DLLを使用すると、SQLデータベースへのアクセスなど、さまざまなことが可能になります。

 

kernel32.dll (および他のWindows .dll)で利用可能なすべての関数の リストはどこで見つけることができますか?

Edit: 見つけました。添付を参照してください。

ファイル:
kernel32.txt  306 kb
 

その通りなんだけど?

Beluck:
でも、ファイル関数は(他の関数と同様に)Windows APIのDLLから直接使用することができます。

ファイルコピー機能のインポート例です。

#import "Kernel32.dll" です。

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

DLLを使用すると、SQLデータベースへのアクセスなど、多くのことができます。

Beluckです。

それは正しいです 、しかし、あなたは私に与えることができる.mqlの デモは、MQL4でカーネル32関数を 使用する方法を示していますCreateFileOpenFile、WriteFileと ReadFile

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

);
 

テッド

alerts.mqh が mtguru1.zip に含まれず、FilesDemo を実行できませんでしたか?よろしくお願いします。

 

gFiles.mqh

sx ted:
alerts.mqh not part of mtguru1.zip, could not run FilesDemo?よろしくお願いします。

sx tedです。

すみません、"gFiles.mqh"のことです。

FilesDemoを実行するには。

1-"mtguru1.dll"を"MetaTrader 4, ³³"に展開する。

2-FilesDemo.mq4"を"MetaTrader 4 sentencingindicators"に解凍し、コンパイルする。

3-"gFiles.mqh"を"MetaTrader 4Experts Filterinclude" に展開します。

4- あなたの指標からFilesDemoをロードする -"Allow DLLImport"を有効にすることを忘れないでください。

 

ted

CodersGuru, thank you super, Have you got equivalent of FileTell()

 

更新しました

sx ted:
CodersGuru, thank you super, Have you got equivalent of FileTell()

sx tedです。

プログラムを更新しました。 以下の関数が 含まれるようになりました。

intgFileOpen(string file_name,int mode);

boolgFileWrite(int handle,string data);

boolgFileClose(int handle);

文字列gFileRead(int handle,int length=0);

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

boolgFileDelete(string file_name);

intgFileSize(int handle);

intgFileTell(int handle); int gFileSize(int handle); intgFileTell(int handle);

boolgFileFlush(int handle);

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

boolgFileMove(文字列ソース,文字列距離);

楽しんでいただければ幸いです。

ファイル:
mtguru1.zip  88 kb
理由: