如何从metatrader文件夹外读取和写入数据? - 页 4

 
qjol:

你已经在这个帖子里得到了你需要的所有答案
问题是,你是否希望有人为你写出整个代码?

不,亲爱的,我想要一个样本代码,我可以用它来尝试,就这样,如果你能帮助我,那会对我更有帮助
 

这个函数 在WinFile_v600.mqh第152行左右定义。

int OpenNewFileForWriting(string FileName, bool ShareForReading = false)
{
   int ShareMode = 0;
   if (ShareForReading) ShareMode = WIN32_FILE_SHARE_READ;
   return (CreateFileW(FileName, GENERIC_WRITE, ShareMode, 0, CREATE_ALWAYS, 0, 0));
}



 
gooly:

这个函数在WinFile_v600.mqh第152行左右定义。



嗨,谢谢你,我已经添加了WinFile_v600.mqh,但仍然有错误

'OpenNewFileForWriting' -函数 已经定义并且有主体 我使用这段代码来读取打开特定路径下的文件

//+------------------------------------------------------------------+
//|                                              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
#include <WinFile_v600.mqh>
#import "kernel32.dll"
   int _lopen  (string path, int of);
   int _lcreat (string path, int attrib);
   int  GetEnvironmentVariableW (string lpName, string& lpBuffer, int nSize);
   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

int start()
  {
//----
      string fName=" ";
        string f = "12345678 1 2345678 2 2345678 3 2345678 4 2345678 5 2345678 6 2345678 7 2345678 8 2345678 9 23456789";
        GetEnvironmentVariableW("USERPROFILE", f, StringLen(f));
        fName = f + "C:\Documents and Settings\Administrator\My Documents\Downloads\test.text" + fName;
        int handle;
        handle=OpenNewFileForWriting(fName);  
//----
   return(0);
  }
  int OpenNewFileForWriting(string FileName, bool ShareForReading = false)
{
   int ShareMode = 0;
   if (ShareForReading) ShareMode = WIN32_FILE_SHARE_READ;
   return (CreateFileW(FileName, GENERIC_WRITE, ShareMode, 0, CREATE_ALWAYS, 0, 0));
}
   
 
也许你必须付钱给S.O.来为你编码,或者你必须阅读MT4文件
 
gooly:
也许你必须付钱给S.O.来为你编码,或者你必须阅读MT4文件

所以你不打算帮忙,对吗?请只需要一个示例代码。
 

如果你显然不明白这意味着什么,那就很令人沮丧了,也没有必要帮助你。

'OpenNewFileForWriting' -函数 已被定义

并相应地修改你的代码。

 
gooly:

如果你显然不明白这意味着什么,那就很令人沮丧了,也没有必要帮助你。

'OpenNewFileForWriting' - 函数已被定义

并相应地修改你的代码。


是的,明白了,谢谢你的帮助,现在我需要读取文件并写入这个函数,我必须读取和写入文件,如果是,那么这里的缓冲区和字节是什么?

int _lread (int handle, string buffer, int bytes);

int _lwrite (int handle, string buffer, int bytes);

 

你已经在使用

#include <WinFile_v600.mqh>

不需要再次导入该函数

ankityadav:

'OpenNewFileForWriting' - 函数已经定义并且有主体,我正在使用这段代码来读取并打开特定路径下的文件

 
qjol:

你已经在使用

不需要再次导入该函数



是的,我知道了,我已经修改了我的代码,现在可以工作了。