エラー、バグ、質問 - ページ 2057

 

すでにバグレポートを作成しましたが、もし興味がある方がいれば...。

Roffild:
Проблема даже с чтением 1000 байт. Может на следующей неделе исправят, а то не получается сейчас читать бинарный файл больше 2гб.

void OnStart()
  {
   double data[];
   int hfile = FileOpen("bytes2147483640.bin", FILE_BIN);   
   Print("read = ", FileReadArray(hfile, data, 0, 1000));
   Print("size = ", ArraySize(data));
   FileClose(hfile);
   ArrayResize(data, 0);
   hfile = FileOpen("bytes2147483649.bin", FILE_BIN);   
   Print("read = ", FileReadArray(hfile, data, 0, 1000)); // read = 4026531841
   Print("size = ", ArraySize(data)); // size = 0
   Print("error = ", GetLastError()); // error = 0
   FileClose(hfile);
  }
Total Commanderは、大きなファイル(mkvをいくつか持っていきました)を適切なサイズのファイルに分割することができます。チェックするのはファイルサイズのみ で、ファイルの中身は重要視されません。
 

こんにちは。

足でボットをテストしようとしていますが、テスターはそのための履歴を与えません(0本)。引用アーカイブを再読み込みしても、解決しない。私は何も知らないのですか?:)

 
Roffild:

すでにバグレポートを作成しましたが、もし興味がある方がいらっしゃれば...。

Total Commanderは、大きなファイル(私はいくつかのmkvを取りました)を任意のサイズのファイルに分割することができます。重要なのはファイルのサイズだけで、中身は関係ない。

FileLoadを使用しています。

Документация по MQL5: Файловые операции / FileLoad
Документация по MQL5: Файловые операции / FileLoad
  • www.mql5.com
//|                                                Demo_FileLoad.mq5 | //|                        Copyright 2016, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Script program start function                                    |...
 
Roffild:

すでにバグレポートを提出していますが、もし興味があれば...。

バグではないでしょうがを制限するとしましょう。古い32bitのファイル操作を使っているだけなのでは?

 
Комбинатор:

バグではないでしょうがを制限するとしましょう。古い32bitのファイル操作を使っているだけなのでは?

INT_MAX バイトで読み込みが中断されたのであれば説明がつきますが、ファイルの先頭すら読み込んでくれません...。

 
ArrayPrintの バグ
void OnStart()
{  
  MqlParam Params[] = {{TYPE_STRING}};

  ArrayPrint(Params);
  Print(Params[0].type);
}


結果

    [type] [integer_value] [double_value] [string_value]
[0]    ...               0        0.00000 null          
14
 
fxsaber:
ArrayPrintのバグ

ArrayPrintの 欠点はこれだけではありませんが、問題のあるメッセージを見たのはこれが初めてです。そのためにToolsExpertsは不便な等幅フォントを作り、印刷情報量を最大で40%も減らしてしまったのです。

 
Комбинатор:

バグではないでしょうがを制限するとしましょう。古い32bitのファイル操作を使っているだけなのでは?

だから大丈夫:3Gbファイル作成→書き込み→読み出し

#define  COMMA  ,
#define  MACRO( flag, value, file, function, comma ) \
{ \
    long offset = long(INT_MAX)/2*3; \
    int h = FileOpen( file, flag | FILE_COMMON | FILE_BIN ); \
    Print( StringFormat( "%d:%d", h, FileSeek( h, offset, SEEK_SET )) \
         + StringFormat(   ":%d",    function( h comma value, sizeof(int))) \
         + StringFormat(   ":%dGb",  FileSize( h )/1024/1024/1024 )); \
    FileClose( h ); \
}
void OnStart()
{
    MACRO( FILE_WRITE, 33, "3Gb.bin", FileWriteInteger, COMMA ) //записали число 33 в конец 3Gb файла
    MACRO( FILE_READ,    , "3Gb.bin", FileReadInteger,        ) //прочитали
}

結果:1:1:33:3Gb

 
A100:

は、違和感のある半角フォントにしたことで、出力の有用性が最大で40%も低下してしまいました。

逆に、ArrayPrintが 出た頃からよく使うので、等幅が好きなんです。

 
fxsaber:

ArrayPrintは発売以来、幅広く使っています。

もしそうなら、このバグや他のバグはとっくに特定されているはずで、それもドットという形で現れているため、使用する意味がないのです。

MetaEditor build 1467
MetaEditor build 1467
  • 2016.11.10
  • www.mql5.com
Объясните, почему вот этот текст, отформатированный исключительно пробелами, нет ни одного -tab-,: после применения стилизатора, преобразуется в та...