ここから本文です

MT4(MQL4)でファイル入出力する場合のディレクトリ指定について お尋ねします。

mac********さん

2019/9/711:02:34

MT4(MQL4)でファイル入出力する場合のディレクトリ指定について
お尋ねします。

通常は、下記のようにすればFileNameで指定したファイルに
変数Test1のデータが出力されますが、そのファイルは、MT4
ターミナル固有のフォルダ(AppData\\・・・\\Terminal以下
えらい長い名前のディレクトリ)に作成されますよね(確認済み)。

string FileName = "file01.csv";
string FileType = "csv";
double Test1 = 100.0;
int Handle = FileOpen( FileName, FILE_CSV | FILE_READ | FILE_WRITE,",");
Print(" Handle = ",Handle);
if( Handle > 0 )
{
FileWrite(Handle, Test1 );
FileClose(Handle);
}
if( Handle <= 0 ) Print(" Error Code = ", GetLastError());

ここでやりたいのは、別なフォルダにファイルを作りたい場合に、
パス指定はどのように記述すればよろしいのでしょうか?

MT4では任意フォルダにファイルを入出力することはできませんが
AppData\\・・・\\Terminalに、Commonというフォルダがあって
そこにファイルを出力すれば、他のMT4ターミナルからもそのファイルを
アクセスできるような記述がありました。しかし、そのパスの指定方法が
わかりません。

string FileName = "file01.csv";のところを
string FileName = "C://(フルパスで指定)//Common//file01.csv";
としてもうまくいきません。(Handle値が-1になる、GetLastErrorは
5002で”不正なファイル名“というメッセージです)

どうぞよろしくお願いします。

閲覧数:
28
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

Shinさん

2019/9/906:46:22

string common_data_path=TerminalInfoString(TERMINAL_COMMONDATA_PATH);

これで取得できませんか?

  • 質問者

    mac********さん

    2019/9/909:40:52

    ご回答ありがとうございます。

    TerminalInfoString(TERMINAL_COMMONDATA_PATH)
    で取得できるのはわかっているのですが、
    取得したcommon_data_pathを 前記質問文中のFileName
    のところにコピーし、そのあとにファイル名を足して
    Handle = FileOpen( FileName, FILE_CSV | FILE_READ | FILE_WRITE,",");
    としてももうまくいかないのです。

    (さきに書いたように、string FileName = "file01.csv";の
    ところをstring FileName ="取得したコモンパス//file01.csv";
    としてもうまくいかない)
    (取得したcommon_data_pathは、
    C:\Users\(ユーザ名)\AppData\Roaming\MetaQuotes
    \Terminal\Common
    になりますが、これをそのまま入れても\は制御文字ですから
    だめなので、\¥とするわけですが(表示は、//になる)
    それでもだめなのです。)

    ひょっとして、なにか外部dllを利用しないとダメとか
    あるんでしょうか?

  • その他の返信(4件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/9/13 18:27:32

ご回答ありがとうございました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる