错误、漏洞、问题 - 页 921

 
sergeev:

- 经纪人是否支持设置带时间的订单?

要做到这一点,请按F9并检查是否可以设置时间。


这里一切正常,即所有挂单都被执行,没有错误。
 
你好,我有这样的问题 - 我买了一个EA 安装在我的电脑上,然后订购了一个VPS服务器并安装了同样的EA。最后我拒绝了租用的服务器,因为经纪人有免费服务,但我不能第三次安装专家顾问(在三个硬件上)。我可以做什么?我可以放弃一个服务器而选择另一个吗?去哪里?谢谢你!
 

关于与文件打交道的两个问题。

1.有一个文本文件,其中包含各种语言的字符串(包括日语、阿拉伯语等)。因此,该文件的编码是UTF8。文件中的数据被写成 "别名=翻译",其中别名始终是英语,翻译是任何其他语言。我确信在阅读时应该使用FILE_UNICODE。但如果你像这样打开文件。

int fileHandle = FileOpen(fileName, FILE_READ|FILE_TXT|FILE_UNICODE, 0, CP_UTF8);

在读取字符串时,我们会得到一组无意义的象形文字。但如果你像这样打开它。

int fileHandle = FileOpen(fileName, FILE_READ|FILE_TXT|FILE_ANSI, 0, CP_UTF8);

然后它就能正常读取并随后输出(我检查了英语、俄语、乌克兰语、日语、阿拉伯语)。

问题:为什么我们需要使用标志FILE_ANSI?毕竟,ANSI是针对单字节字符的,而UTF8则是单码字符编码...


2.有一个类有这样一个方法。

string CTranslator::getTranslate(string str) {
//---
   int fileHandle = FileOpen(filename, FILE_READ|FILE_TXT|FILE_ANSI, 0, CP_UTF8);
   
   if ( fileHandle == INVALID_HANDLE ) {
      return(str);
   }
//---
   string temp, alias, traslation;
   int delimiterPos;
      
   for ( ; !FileIsEnding(fileHandle); ) {
      temp = FileReadString(fileHandle);
      delimiterPos = StringFind(temp, "=");
      alias = StringSubstr(temp, 0, delimiterPos);
      
      if ( StringCompare(str, alias, false) == 0 ) {
         traslation = StringSubstr(temp, delimiterPos+1);
          
         return(traslation);
      }   
   }
   FileClose(fileHandle);
//---
   return(str);
}

文件名是一个属性,在初始化一个对象时,它被赋予一个值。也就是说,当你调用该方法时,我们打开文件,逐行读取,一旦找到匹配的字符串,我们就返回其子串。如果文件没有被打开或者没有匹配的字符串,我们将返回输入的字符串。

如果我们调用一次该方法,一切都会成功。但如果你连续调用几次--只在第一次工作,而第二次和以后试图打开文件时--INVALID_HANDLE(用打印检查)。可能是什么问题?

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы - Документация по MQL5
 
Rone:

2.有一个类有这个方法。

文件名是一个属性,它在对象初始化时被分配一个值。也就是说,当该方法被调用时,我们打开文件,逐行阅读,一旦找到合适的行,我们就返回其子串。如果文件没有被打开或者没有匹配的字符串,我们将返回输入的字符串。

如果我们调用一次该方法,一切都会成功。但如果你连续调用几次--只在第一次工作,而第二次和以后试图打开文件时--INVALID_HANDLE(用打印检查)。可能是什么问题?

这可能是原因。

      if ( StringCompare(str, alias, false) == 0 ) {
         traslation = StringSubstr(temp, delimiterPos+1);
          
         return(traslation);
      }   
 
Rone:

...

2.有一个类,它有一个这样的方法。

文件名是一个属性,在对象被初始化时被分配一个值。也就是说,当该方法被调用时,我们打开文件,逐行阅读,一旦找到合适的行,我们就返回其子串。如果文件没有被打开或者没有匹配的字符串,我们将返回输入的字符串。

如果我们调用一次该方法,一切都会成功。但如果你连续调用几次--只在第一次工作,而第二次和以后试图打开文件时--INVALID_HANDLE(用打印检查)。可能是什么问题?

也许是因为如果 "返回输入的字符串",文件就不会被关闭?
 

也许它在那里是有效的

但你的经纪公司是否有一个日期选项?

 
Contender:

也许这就是原因。

...

tol64

...


谢谢你的及时回复!

对不起,我忽略了它,出去抽了根烟,就得到了它。

在这里,它是。

      if ( StringCompare(str, alias, false) == 0 ) {
         traslation = StringSubstr(temp, delimiterPos+1);
         FileClose(fileHandle);

         return(traslation);
      }

现在开始工作了。但第一个问题仍然存在。

 
sergeev:

也许这就是它的作用所在。

但你的经纪公司是否有一个日期选项?

我已经有一个星期没有从我的经纪人那里听到任何明确的消息了 ...rrrrrrr....

 
Rone:


谢谢您的及时回复

对不起,我忽略了它,出去抽了根烟,就得到了它。

在这里,它是。

现在开始工作了。但第一个问题仍然存在。

关于第一个问题。

如果文件以unicode方式打开,则不做任何转换(即你的CP_UTF8被简单地忽略),数据被 "原样 "读取。

当从以ANSI模式打开的文本文件中读取时,转换为内部Unicode文本(字符串类型的 数据)时,该代码页起作用。

 
Nikos52:

我已经有一个星期没有从我的经纪人那里听到任何明确的消息了 ...rrrrrrr....


你的经纪终端上的F9坏了吗?