記事"MQL5でのZIPアーカイブの扱い"についてのディスカッション - ページ 2 12345678910 新しいコメント Dmytro Zelenskyy 2017.08.07 12:16 #11 Vasiliy Sokolov:悪名高い構造のキャスティングは悪態をつくことである。修正版を添付ファイルに入れておいてください。プロンプトありがとうございました! Stanislav Korotky 2017.08.07 13:23 #12 Vasiliy Sokolov:構造体キャスティングと同じ状況ですが、CDictionaryという別のコンテナです。IncludeDictionary.mqhを以下に添付のバリアントで置き換えてください。そして、はい、すべてがMT4で問題なく動作 し、私はCZipがMT4上の私のプロジェクトにおける主力であると言うでしょう。あとはこれだけだ:'m_array' - structures containing objects are not allowed Dictionary.mqh 306 25 Vasiliy Sokolov 2017.08.07 14:41 #13 Stanislav Korotky: 残るはこれだ:'m_array' - structures containing objects are not allowed Dictionary.mqh 306 25306行目はこの断片に置き換えてください:#ifdef __MQL4__ int t_size = ArrayResize(temp_array, ArraySize(m_array)); for(int i = 0; i < t_size; i++) temp_array[i] = m_array[i]; #else ArrayCopy(temp_array, m_array); #endifMT4用アタッシュ辞書 ファイル: Dictionary.mqh 39 kb Stanislav Korotky 2017.08.07 15:04 #14 Vasiliy Sokolov: 306行目はこの断片に置き換えてください:MT4 用のアタッシュ辞書では。これで理解できました。ありがとう。PS.アーカイブ内の長さがゼロのファイルについては、(ZipTask1の例では)正しくないヘッダが作成され、そのために復元できないのは事実ですが、これは解決できます。 Vasiliy Sokolov 2017.08.07 15:24 #15 Stanislav Korotky:理にかなっている。ありがとう。PS.ZipTask1の例では)アーカイブ内の長さゼロのファイルに対して無効なヘッダが作成され、検索不能になるのは事実だが、これは解決できる。長さゼロで何ができるか見てみます。 Dmytro Zelenskyy 2017.08.09 17:39 #16 何が問題なのでしょうか?zip.zipファイル(例からダウンロード)を解凍できません。ログ 18:25:47.809 スクリプト zip_arc101 GBPUSD,H1: 正常にロードされました。0 18:25:47.830 zip_arc101 GBPUSD,H1: 初期化されました。0 18:25:47.830 zip_arc101 GBPUSD,H1: Handle= 1 GetLastError= 00 18:25:47.830 zip_arc101 GBPUSD,H1:FileReadArray= 110040 18:25:47.830 zip_arc101 GBPUSD,H1: Zip.CreateFromCharArray= true0 18:25:47.830 zip_arc101 GBPUSD,H1: アーカイブの読み込みに成功しました。合計ファイル数: 70 18:25:47.836 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false0 18:25:47.837 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false0 18:25:47.837 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false0 18:25:47.837 zip_arc101 GBPUSD,H1: uninit reason 00 18:25:47.839 スクリプト zip_arc101 GBPUSD,H1: 削除されました。 Discussion of article "Handling 関数 - 構造体の配列をソートするためのメソッド。賞金10ドル エラー、バグ、質問 Dmytro Zelenskyy 2017.08.09 17:41 #17 void OnStart() { //--- uchar zip_array[]; ResetLastError(); int Handle = FileOpen("zip.zip", FILE_READ|FILE_BIN|FILE_COMMON ); Print("Handle= ", Handle, " GetLastError= ", GetLastError() ); Print("FileReadArray= ", FileReadArray(Handle, zip_array) ); Print("Zip.CreateFromCharArray= ", Zip.CreateFromCharArray(zip_array) ); printf("Archive successfully loaded. Total files: "+(string)Zip.TotalElements()); Print("Zip.UnpackZipArchive= ", Zip.UnpackZipArchive("NNN",FILE_COMMON) ); Print("Zip.UnpackZipArchive= ", Zip.UnpackZipArchive("",FILE_COMMON) ); Print("Zip.UnpackZipArchive= ", Zip.UnpackZipArchive("", 0) ); } //+------------------------------------------------------------------+ Vasiliy Sokolov 2017.08.09 17:53 #18 CZip::UnpackZipArchiveメソッドは、仕事はするのですが、なぜかいつもfalseを返します。これはバグです。現場観察によって実際の解凍をチェックしてください。 Dmytro Zelenskyy 2017.08.09 21:40 #19 Vasiliy Sokolov:CZip::UnpackZipArchiveメソッドは、仕事はするのですが、なぜかいつもfalseを返します。これはバグです。実際の解凍を観察してみてください。はい! Dmytro Zelenskyy 2017.08.10 01:01 #20 ここでもう一つ問題がある。複数のアーカイブをループで解凍する必要がある場合、名前の年だけを変更する必要がある。d2014.zipだけが解凍される。0 01:57:36.772 スクリプト zip_arc104 GBPUSD,H1: 読み込み成功0 01:57:36.807 zip_arc104 GBPUSD,H1: 初期化されました。0 01:57:36.807 zip_arc104 GBPUSD,H1: -------------- DDDd2014.zip0 01:57:36.815 zip_arc104 GBPUSD,H1: DD╱d2014.zip Zip.LoadZipFromFile= true0 01:57:36.815 zip_arc104 GBPUSD,H1: アーカイブの読み込みに成功しました。合計ファイル数: 10 01:57:36.906 zip_arc104 GBPUSD,H1: Zip.UnpackZipArchive= false0 01:57:36.906 zip_arc104 GBPUSD,H1: -------------- DDd2015.zip0 01:57:36.912 zip_arc104 GBPUSD,H1: DDPUSD2015.zip Zip.LoadZipFromFile= true0 01:57:36.912 zip_arc104 GBPUSD,H1: アーカイブの読み込みに成功しました。合計ファイル数: 11 01:57:36.912 zip_arc104 GBPUSD,H1: 'Zip.mqh' (407,28) で無効なポインタ アクセスが発生しました。0 01:57:36.913 zip_arc104 GBPUSD,H1: uninit reason 00 01:57:36.915 スクリプト zip_arc104 GBPUSD,H1: 削除されました。 Discussion of article "Handling MQL5における拡張ディッキー フラー検定の実装 Rを使って高速化したMQL5の統計分布 12345678910 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
悪名高い構造のキャスティングは悪態をつくことである。修正版を添付ファイルに入れておいてください。
プロンプトありがとうございました!
構造体キャスティングと同じ状況ですが、CDictionaryという別のコンテナです。IncludeDictionary.mqhを以下に添付のバリアントで置き換えてください。
そして、はい、すべてがMT4で問題なく動作 し、私はCZipがMT4上の私のプロジェクトにおける主力であると言うでしょう。
あとはこれだけだ:
'm_array' - structures containing objects are not allowed Dictionary.mqh 306 25
残るはこれだ:
'm_array' - structures containing objects are not allowed Dictionary.mqh 306 25
306行目はこの断片に置き換えてください:
MT4用アタッシュ辞書
306行目はこの断片に置き換えてください:
MT4 用のアタッシュ辞書では。
これで理解できました。ありがとう。
PS.アーカイブ内の長さがゼロのファイルについては、(ZipTask1の例では)正しくないヘッダが作成され、そのために復元できないのは事実ですが、これは解決できます。
理にかなっている。ありがとう。
PS.ZipTask1の例では)アーカイブ内の長さゼロのファイルに対して無効なヘッダが作成され、検索不能になるのは事実だが、これは解決できる。
長さゼロで何ができるか見てみます。
何が問題なのでしょうか?zip.zipファイル(例からダウンロード)を解凍できません。
ログ
18:25:47.809 スクリプト zip_arc101 GBPUSD,H1: 正常にロードされました。
0 18:25:47.830 zip_arc101 GBPUSD,H1: 初期化されました。
0 18:25:47.830 zip_arc101 GBPUSD,H1: Handle= 1 GetLastError= 0
0 18:25:47.830 zip_arc101 GBPUSD,H1:FileReadArray= 11004
0 18:25:47.830 zip_arc101 GBPUSD,H1: Zip.CreateFromCharArray= true
0 18:25:47.830 zip_arc101 GBPUSD,H1: アーカイブの読み込みに成功しました。合計ファイル数: 7
0 18:25:47.836 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false
0 18:25:47.837 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false
0 18:25:47.837 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false
0 18:25:47.837 zip_arc101 GBPUSD,H1: uninit reason 0
0 18:25:47.839 スクリプト zip_arc101 GBPUSD,H1: 削除されました。
CZip::UnpackZipArchiveメソッドは、仕事はするのですが、なぜかいつもfalseを返します。これはバグです。現場観察によって実際の解凍をチェックしてください。
CZip::UnpackZipArchiveメソッドは、仕事はするのですが、なぜかいつもfalseを返します。これはバグです。実際の解凍を観察してみてください。
はい!
ここでもう一つ問題がある。複数のアーカイブをループで解凍する必要がある場合、名前の年だけを変更する必要がある。
d2014.zipだけが解凍される。
0 01:57:36.772 スクリプト zip_arc104 GBPUSD,H1: 読み込み成功
0 01:57:36.807 zip_arc104 GBPUSD,H1: 初期化されました。
0 01:57:36.807 zip_arc104 GBPUSD,H1: -------------- DDDd2014.zip
0 01:57:36.815 zip_arc104 GBPUSD,H1: DD╱d2014.zip Zip.LoadZipFromFile= true
0 01:57:36.815 zip_arc104 GBPUSD,H1: アーカイブの読み込みに成功しました。合計ファイル数: 1
0 01:57:36.906 zip_arc104 GBPUSD,H1: Zip.UnpackZipArchive= false
0 01:57:36.906 zip_arc104 GBPUSD,H1: -------------- DDd2015.zip
0 01:57:36.912 zip_arc104 GBPUSD,H1: DDPUSD2015.zip Zip.LoadZipFromFile= true
0 01:57:36.912 zip_arc104 GBPUSD,H1: アーカイブの読み込みに成功しました。合計ファイル数: 1
1 01:57:36.912 zip_arc104 GBPUSD,H1: 'Zip.mqh' (407,28) で無効なポインタ アクセスが発生しました。
0 01:57:36.913 zip_arc104 GBPUSD,H1: uninit reason 0
0 01:57:36.915 スクリプト zip_arc104 GBPUSD,H1: 削除されました。