メタトレーダーフォルダー外からのデータの読み書きの方法

 

こんにちは、皆さん、外部フォルダからファイルを読み書きする方法を教えてください、あなたは私が理解できるようにいくつかの小さなコードを見せてもらえますか?

多くの感謝

 

WINAPI

フォーラムを検索すると、たくさんの例があります。

 
qjol:

WINAPI

フォーラムを検索すると、たくさんの例があります。


こんにちはあなたの応答をありがとうございましたが、私はcsv formtのデータを書きたいと私はテキスト形式であることを参照してくださいすべての例では、それを得るためにhwを助けてくださいすることができますか?
 
ankityadav:

こんにちは、あなたの応答をありがとう、しかし、私はcsv formtでデータを書きたい、私が見るすべてのサンプルは、テキスト形式であることができますあなたはそれを得るためにhwを助けてください?

まず、それが動作するようにしてください。その後、あなたは次に何をすべきかを知っているだろう。
 
deysmacro:

まずは動くようにする。そうすれば、次に何をすべきかがわかるでしょう。

ご回答ありがとうございます。しかし、私は別のフォルダからファイルを読んで、ファイルを書き込もうとしているときに動作しません
//+------------------------------------------------------------------+
//|                                              File Read Write.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

// êîíñòàíòû äëÿ ôóíêöèè _lopen
#define  OF_READ               0
#define  OF_WRITE              1
#define  OF_READWRITE          2
#define  OF_SHARE_COMPAT       3
#define  OF_SHARE_DENY_NONE    4
#define  OF_SHARE_DENY_READ    5
#define  OF_SHARE_DENY_WRITE   6
#define  OF_SHARE_EXCLUSIVE    7

#import "kernel32.dll"
   int _lopen  (string path, int of);
   int _lcreat (string path, int attrib);
   int _llseek (int handle, int offset, int origin);
   int _lread  (int handle, string buffer, int bytes);
   int _lwrite (int handle, string buffer, int bytes);
   int _lclose (int handle);
#import

// _lopen  : Îòêpûâàåò óêàçàííûé ôàéë. Âîçâpàùàåò: îïèñàòåëü ôàéëà.
// _lcreat : Ñîçäàåò óêàçàííûé ôàéë.   Âîçâpàùàåò: îïèñàòåëü ôàéëà.
// _llseek : Óñòàíàâëèâàåò óêàçàòåëü â îòêpûòîì ôàéëå. Âîçâpàùàåò: 
// íîâîå ñìåùåíèå óêàçàòåëÿ.
// _lread  : Ñ÷èòûâàåò èç îòêpûòîãî ôàéëà óêàçàííîå ÷èñëî áàéò. 
// Âîçâpàùàåò: ÷èñëî ñ÷èòàííûõ áàéò; 0 - åñëè êîíåö ôàéëà.
// _lwrite : Çàïèñûâàåò äàííûå èç áóôåpà â óêàçàííûé ôàéë. Âîçâpàùàåò: 
// ÷èñëî çàïèñàííûõ áàéò.
// _lclose : Çàêpûâàåò óêàçàííûé ôàéë. Âîçâpàùàåò: 0.
//  ñëó÷àå íåóñïåøíîãî çàâåpøåíèÿ âñå ôóíêöèè âîçâðàùàþò çíà÷åíèå 
// HFILE_ERROR=-1.
 
// path   : Ñòpîêà, îïpåäåëÿþùàÿ ïóòü è èìÿ ôàéëà.
// of     : Ñïîñîá îòêðûòèÿ.
// attrib : 0 - ÷òåíèå èëè çàïèñü; 1 - òîëüêî ÷òåíèå; 2 - íåâèäèìûé èëè 
// 3 - ñèñòåìíûé.
// handle : Ôàéëîâûé îïèñàòåëü.
// offset : ×èñëî áàéò, íà êîòîpîå ïåpåìåùàåòñÿ óêàçàòåëü.
// origin : Óêàçûâàåò íà÷àëüíóþ òî÷êó è íàïpàâëåíèå ïåpåìåùåíèÿ: 0 - 
// âïåpåä îò íà÷àëà; 1 - ñ òåêóùåé ïîçèöèè; 2 - íàçàä îò êîíöà ôàéëà.
// buffer : Ïpèíèìàþùèé/çàïèñûâàåìûé áóôåp.
// bytes  : ×èñëî ñ÷èòûâàåìûõ áàéò.
 
// Ñïîñîáû îòêðûòèÿ (ïàðàìåòð of):
// int OF_READ            =0; // Îòêðûòü ôàéë òîëüêî äëÿ ÷òåíèÿ
// int OF_WRITE           =1; // Îòêðûòü ôàéë òîëüêî äëÿ çàïèñè
// int OF_READWRITE       =2; // Îòêðûòü ôàéë â ðåæèìå çàïèñü/÷òåíèå
// int OF_SHARE_COMPAT    =3; // Îòêðûâàåò ôàéë â ðåæèìå îáùåãî 
// ñîâìåñòíîãî äîñòóïà. Â ýòîì ðåæèìå ëþáîé ïðîöåññ ìîæåò îòêðûòü äàííûé 
// ôàéë ëþáîå êîëè÷åñòâî ðàç. Ïðè ïîïûòêå îòêðûòü ýòîò ôàéë â ëþáîì äðóãîì
// ðåæèìå, ôóíêöèÿ âîçâðàùàåò HFILE_ERROR.
// int OF_SHARE_DENY_NONE =4; // Îòêðûâàåò ôàéë â ðåæèìå îáùåãî äîñòóïà 
// áåç çàïðåòà íà ÷òåíèå/çàïèñü äðóãèì ïðîöåññàì. Ïðè ïîïûòêå îòêðûòèÿ 
// äàííîãî ôàéëà â ðåæèìå OF_SHARE_COMPAT, ôóíêöèÿ âîçâðàùàåò HFILE_ERROR.
// int OF_SHARE_DENY_READ =5; // Îòêðûâàåò ôàéë â ðåæèìå îáùåãî äîñòóïà ñ 
// çàïðåòîì íà ÷òåíèå äðóãèì ïðîöåññàì. Ïðè ïîïûòêå îòêðûòèÿ äàííîãî ôàéëà 
// ñ ôëàãàìè OF_SHARE_COMPAT è/èëè OF_READ èëè OF_READWRITE, ôóíêöèÿ 
// âîçâðàùàåò HFILE_ERROR.
// int OF_SHARE_DENY_WRITE=6; // Òîæå ñàìîå, òîëüêî ñ çàïðåòîì íà çàïèñü.
// int OF_SHARE_EXCLUSIVE =7; // Çàïðåò òåêóùåìó è äðóãèì ïðîöåññàì íà 
// äîñòóï ê ýòîìó ôàéëó â ðåæèìàõ ÷òåíèÿ/çàïèñè. Ôàéë â ýòîì ðåæèìå ìîæíî 
// îòêðûòü òîëüêî îäèí ðàç (òåêóùèì ïðîöåññîì). Âñå îñòàëüíûå ïîïûòêè 
// îòêðûòèÿ ôàéëà áóäóò ïðîâàëåíû.
//+------------------------------------------------------------------+
//|   ïðî÷èòàòü ôàéë è âåðíóòü ñòðîêó ñ ñîäåðæèìûì                   |
//+------------------------------------------------------------------+

int start()
  {
//----
    string buffer=ReadFile("C:\Documents and Settings\Administrator\My Documents\Downloads\test.txt");
    int count=StringLen(buffer);
    Print("Ïðî÷èòàíî áàéò:",count);
    WriteFile("C:\Documents and Settings\Administrator\My Documents\Downloads\test2.txt",buffer);   
//----
   return(0);
  }
  
  string ReadFile (string path) 
  {
    int handle=_lopen (path,OF_READ);           
    if(handle<0) 
      {
        Print("Îøèáêà îòêðûòèÿ ôàéëà ",path); 
        return ("");
      }
    int result=_llseek (handle,0,0);      
    if(result<0) 
      {
        Print("Îøèáêà óñòàíîâêè óêàçàòåëÿ" ); 
        return ("");
      }
    string buffer="";
    string char1="x";
    int count=0;
    result=_lread (handle,char1,1);
    while(result>0) 
      {
        buffer=buffer+char1;
        char1="x";
        count++;
        result=_lread (handle,char1,1);
     }
    result=_lclose (handle);              
    if(result<0)  
      Print("Îøèáêà çàêðûòèÿ ôàéëà ",path);
    return (buffer);
  }
 
//+------------------------------------------------------------------+
//|  çàïèñàòü ñîäåðæèìîå áóôåðà ïî óêàçàííîìó ïóòè                   |
//+------------------------------------------------------------------+
void WriteFile (string path, string buffer) 
  {
    int count=StringLen (buffer); 
    int result;
    int handle=_lopen (path,OF_WRITE);
    if(handle<0) 
      {
        handle=_lcreat (path,0);
        if(handle<0) 
          {
            Print ("Îøèáêà ñîçäàíèÿ ôàéëà ",path);
            return;
          }
        result=_lclose (handle);
     }
    handle=_lopen (path,OF_WRITE);               
    if(handle<0) 
      {
        Print("Îøèáêà îòêðûòèÿ ôàéëà ",path); 
        return;
      }
    result=_llseek (handle,0,0);          
    if(result<0) 
      {
        Print("Îøèáêà óñòàíîâêè óêàçàòåëÿ"); 
        return;
      }
    result=_lwrite (handle,buffer,count); 
    if(result<0)  
        Print("Îøèáêà çàïèñè â ôàéë ",path," ",count," áàéò");
    result=_lclose (handle);              
    if(result<0)  
        Print("Îøèáêà çàêðûòèÿ ôàéëà ",path);
  }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
 
C:\Documents and Settings\Administrator\My Documents\Downloads\test.txt
C:\ にディレクトリを変更し、test.txt があなたによって作成されることを確認するだけです。
 
deysmacro:
C:\ にディレクトリを変更し、test.txt があなたによって作成されることを確認するだけです。

(徹信) 分かるわけないだろ ダウンロードフォルダにも入れたし 両方とも作ったけどダメだったんだよ どういうことだよ?
 
もしかしたら、https://c.mql5.com/mql4/forum/2 014/03/WinFile_v600.mqh。
 
gooly:
もしかしたら、https://c.mql5.com/mql4/forum/2 014/03/WinFile_v600.mqh。

ありがとうございます、しかし、私は前に私はカーネルを使用していて、今Winfileを理解できないのですか?
 
ankityadav:

ありがとうございます。しかし、私は前に私はカーネルを使用していて、今Winfileを理解していない? 。

それを見てきましたか?kernel32で 検索してください。
 
gooly:

ご覧になりましたか? kernel32で検索してください。

ありがとうございます、私はすでにこれを検索しますが、あなたは私に任意のフォルダ内のcsvファイルのフライ読み取り書き込みoperatonのサンプルを知らせることができますか?