在新的一行写到文件中 - 页 7 1234567 新评论 Alexey Viktorov 2020.08.25 10:30 #61 EfremovSergey:它与 "繁忙 "旗帜(先进先出)差不多,只是要复杂一些,但这个想法很有趣,我喜欢,谢谢。 也许,禁用共享编辑FILE_SHARE_WRITE 会更容易,让那些只打开读的人FILE_READ读,那些打开读和写的人FILE_READ|FILE_WRITE得到一个错误并重新打开文件。这可能会更容易。 Alexey Viktorov 2020.08.25 10:31 #62 EfremovSergey:我不太明白在FileClose保存的情况下这意味着什么。 这意味着不仅是在关闭文件 时,所做的修改也会保存到磁盘上。 EfremovSergey 2020.08.25 19:01 #63 string sep=";"; // знак разделителя ushort usep=StringGetCharacter(sep,0); // код знака разделителя string arr[]; // массив данных для открытия ордера int h=0; // handle_1 int h1=0; // handle_2 int OnInit() { EventSetMillisecondTimer(3000); return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { EventKillTimer(); } void OnTimer() { h=FileOpen("Copy.txt",FILE_READ|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_COMMON,";"); // open файл FileSeek(h,0,SEEK_SET); // перевод курсора в начало файла while(FileIsEnding(h)==false) // построчное чтение до конца файла { string s=FileReadString(h); // чтение строки StringSplit(s,usep,arr); // перенос подстрок в массив // открытие ордера с данными из массива OrderSend(arr[0],StrToInteger(arr[1]),StrToDouble(arr[2]),StrToDouble(arr[3]),100,0,0); if(FileIsEnding(h)==false) // промежуточная проверка continue; // возврат в начало по условию if h1=FileOpen("Copy.txt",FILE_WRITE|FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_TXT|FILE_COMMON,";"); // очистка файла FileClose(h1); // закрытие handle_2 } FileClose(h); // закрытие handle_1 Comment ("\n H: ", h, "\n H1: ", h1); // вывод хэнделов на экран } 在读取方面,有一个标记,允许在所有数据被提取后,不关闭文件 而将其清空。 在写入方面,我们有一个标记,如果文件已经被另一个专家顾问打开,则不允许打开该文件。 //--- Открываем файл int h1=FileOpen("Copy.txt",FILE_READ|FILE_WRITE|FILE_TXT|FILE_COMMON,";"); FileSeek(h1, 0, SEEK_END); FileWrite(h1,Symbol(),OP_BUYSTOP,OrderLots()*Koof,OrderStopLoss(),Slippage,0,0,IntegerToString(OrderTicket())); FileClose(h1); // закрываем файл 这段代码只是举例说明,它缺乏处理手柄和票据之类的检查功能,但它接近于理想的结果。 再次感谢大家,非常感谢大家提供的信息和有用的提示。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它与 "繁忙 "旗帜(先进先出)差不多,只是要复杂一些,但这个想法很有趣,我喜欢,谢谢。
也许,禁用共享编辑FILE_SHARE_WRITE 会更容易,让那些只打开读的人FILE_READ读,那些打开读和写的人FILE_READ|FILE_WRITE得到一个错误并重新打开文件。这可能会更容易。
我不太明白在FileClose保存的情况下这意味着什么。
这意味着不仅是在关闭文件 时,所做的修改也会保存到磁盘上。
在读取方面,有一个标记,允许在所有数据被提取后,不关闭文件 而将其清空。
在写入方面,我们有一个标记,如果文件已经被另一个专家顾问打开,则不允许打开该文件。
这段代码只是举例说明,它缺乏处理手柄和票据之类的检查功能,但它接近于理想的结果。
再次感谢大家,非常感谢大家提供的信息和有用的提示。