在新的一行写到文件中 - 页 6 1234567 新评论 Alexey Viktorov 2020.08.23 12:18 #51 Aleksei Stepanenko: 谢尔盖有几个专家顾问在那里工作,有几行,所以它是一个数组。这就是为什么一切看起来都很难看。马克西姆-库兹涅佐夫建议SQL,这是这些EA相互交流的正确方式。 但是,这些线条被逐一读出,并以某种方式选择正确的线条。然后你就不需要一个数组了。 我也这么说过,但mql4不支持SQLite Aleksei Stepanenko 2020.08.23 12:24 #52 我不是把图书馆插上了吗?或者不在那里,我忘了。 EfremovSergey 2020.08.25 09:14 #53 Aleksei Stepanenko:我不是把图书馆插上了吗?或者不在那里,我忘了。 似乎不可能同时编辑一个文件,因为后来保存的是文件的版本。 例如,程序A打开文件 进行编辑,同时程序B也进行了编辑,然后程序A进行了修改并使用FileClose保存,然后程序B也进行了修改,但当程序C打开文件时,不会显示程序A的修改,而只显示程序B实施和保存的修改,因为程序B比程序A晚保存文件。 但这并不确定。 是否有这方面的任何信息? Aleksei Stepanenko 2020.08.25 09:49 #54 用一个文件同时工作的程序是最邪恶的。当在一个文件上工作时,一个EA必须控制禁止其他EA读/写该文件。使用SQL或flag-全局变量 或flag-文件。否则就会出现难以理解的错误,难以发现。 EfremovSergey 2020.08.25 09:57 #55 Aleksei Stepanenko: 用一个文件同时工作的程序是最邪恶的。在使用该文件的时候,专家顾问应该控制禁止其他专家顾问读/写该文件。使用SQL或标志全局变量 或标志文件。否则就会出现难以理解的错误,难以发现。 这并不邪恶,有各种各样的任务,你只是必须考虑到某些特殊性。 显然,这些变化正是在FileClose 的时刻被保存的,在此之前没有人知道它们。 Aleksei Stepanenko 2020.08.25 10:06 #56 这取决于你。人类大脑的构造是这样的,新的想法很难出现。 Alexey Viktorov 2020.08.25 10:08 #57 EfremovSergey:似乎不可能同时编辑一个文件,因为后来保存的是文件的版本。例如,程序A打开文件 进行编辑,同时程序B也做了同样的事情,然后程序A做了修改并使用FileClose保存,然后程序B也做了同样的事情,但当程序C打开文件时,该文件将不包含程序A所做的修改,而只包含程序B所做并保存的修改,因为程序B比程序A晚保存该文件。但这并不确定。是否有这方面的任何信息? 设置起来很困难,但并非不可能。在保存之前,检查最后一次更改的时间与打开时的时间是否一致就可以了。我们读取 FILE_MODIFY_DATE,然后打开文件,进行修改,再次读取 FILE_MODIFY_DATE,与之前的进行比较,如果没有人进行修改,则关闭文件并保存修改。否则,我们就放弃修改......并再次打开它。像这样。 Alexey Viktorov 2020.08.25 10:10 #58 EfremovSergey:并非那么邪恶,任务是不同的,但有某些特殊性需要考虑。显然,这些变化是在FileClose的时候 保存的,在此之前没有人知道它们。不是一个事实。 文件刷新 将 文件I/O缓冲区中的所有剩余数据重置到磁盘。 void FileFlush( int file_handle // handle файла ); EfremovSergey 2020.08.25 10:20 #59 Alexey Viktorov:难以设置,但并非不可能。在书写之前,检查最后一次更改的时间与打开时的时间是否一致就可以了。例如,读取 FILE_MODIFY_DATE,然后打开文件,进行修改,再次读取 FILE_MODIFY_DATE,与之前的进行比较,如果没有人进行修改,就关闭文件,保存修改。否则,我们就放弃修改......并再次打开它。像这样。 这和 "忙 "旗差不多(先到先得),只是要复杂一些,但这个想法很有趣,我喜欢,谢谢。 EfremovSergey 2020.08.25 10:24 #60 Alexey Viktorov:不是一个事实。 文件刷新 将文件I/O缓冲区中的任何剩余数据重置到磁盘。 不知道这在FileClose 保存的背景下意味着什么。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢尔盖有几个专家顾问在那里工作,有几行,所以它是一个数组。这就是为什么一切看起来都很难看。马克西姆-库兹涅佐夫建议SQL,这是这些EA相互交流的正确方式。
但是,这些线条被逐一读出,并以某种方式选择正确的线条。然后你就不需要一个数组了。
我也这么说过,但mql4不支持SQLite
我不是把图书馆插上了吗?或者不在那里,我忘了。
我不是把图书馆插上了吗?或者不在那里,我忘了。
似乎不可能同时编辑一个文件,因为后来保存的是文件的版本。
例如,程序A打开文件 进行编辑,同时程序B也进行了编辑,然后程序A进行了修改并使用FileClose保存,然后程序B也进行了修改,但当程序C打开文件时,不会显示程序A的修改,而只显示程序B实施和保存的修改,因为程序B比程序A晚保存文件。
但这并不确定。
是否有这方面的任何信息?
用一个文件同时工作的程序是最邪恶的。在使用该文件的时候,专家顾问应该控制禁止其他专家顾问读/写该文件。使用SQL或标志全局变量 或标志文件。否则就会出现难以理解的错误,难以发现。
这并不邪恶,有各种各样的任务,你只是必须考虑到某些特殊性。
显然,这些变化正是在FileClose 的时刻被保存的,在此之前没有人知道它们。
似乎不可能同时编辑一个文件,因为后来保存的是文件的版本。
例如,程序A打开文件 进行编辑,同时程序B也做了同样的事情,然后程序A做了修改并使用FileClose保存,然后程序B也做了同样的事情,但当程序C打开文件时,该文件将不包含程序A所做的修改,而只包含程序B所做并保存的修改,因为程序B比程序A晚保存该文件。
但这并不确定。
是否有这方面的任何信息?
设置起来很困难,但并非不可能。在保存之前,检查最后一次更改的时间与打开时的时间是否一致就可以了。我们读取 FILE_MODIFY_DATE,然后打开文件,进行修改,再次读取 FILE_MODIFY_DATE,与之前的进行比较,如果没有人进行修改,则关闭文件并保存修改。否则,我们就放弃修改......并再次打开它。像这样。
并非那么邪恶,任务是不同的,但有某些特殊性需要考虑。
显然,这些变化是在FileClose的时候 保存的,在此之前没有人知道它们。
不是一个事实。
文件刷新将 文件I/O缓冲区中的所有剩余数据重置到磁盘。
难以设置,但并非不可能。在书写之前,检查最后一次更改的时间与打开时的时间是否一致就可以了。例如,读取 FILE_MODIFY_DATE,然后打开文件,进行修改,再次读取 FILE_MODIFY_DATE,与之前的进行比较,如果没有人进行修改,就关闭文件,保存修改。否则,我们就放弃修改......并再次打开它。像这样。
这和 "忙 "旗差不多(先到先得),只是要复杂一些,但这个想法很有趣,我喜欢,谢谢。
不是一个事实。
文件刷新将文件I/O缓冲区中的任何剩余数据重置到磁盘。
不知道这在FileClose 保存的背景下意味着什么。