記事"MQL5でのZIPアーカイブの扱い"についてのディスカッション - ページ 6

 
constにライブラリーを紹介するのもいいだろう。例えば
   ENUM_ZIP_TYPE        ZipType(void) const; 
 
fxsaber:

ああ、添付ファイルは動く。でも僕のはダメなんだ。変だね。

ファイル:
info.zip  575 kb
 
Alexey Oreshkin:

ああ、添付ファイルは動く。でも僕のはダメなんだ。変だな。

#include <Zip\Zip.mqh> //https://www.mql5.com/ja/articles/1971

void OnStart()
{
  CZip Zip;

  if (Zip.LoadZipFromFile("info.zip", 0))
    Zip.UnpackZipArchive("Temp", 0);
  else
    Print(EnumToString((ENUM_ZIP_ERROR)(GetLastError() - ERR_USER_ERROR_FIRST))); // zip_error_bad_format_zip
}

他の何かでリパッケージしてください。

 
fxsaber:

他の何かでリパッケージしてください。

Webrequestで このファイルを入手しました。Zipは普通に開くし、Sharpも何の問題もない。手作業でリパッケージすることはできません。
http://api.bestchange.ru/info.zip.

 
Alexey Oreshkin:

Webrequestで このファイルを入手しました。Zipで普通に開けるし、Sharpでも問題ない。手作業でリパッケージすることはできません。要は自動化です。
ここでファイルを入手しました。http://api.bestchange.ru/info.zip。

私もネットからzipを取り寄せます。しかし、私はあなたのように「幸運」ではなかった。これはもうライブラリの作者に任せるしかない。私は、ZIP-formatがその作成以来変更されていないことを疑う。

 
fxsaber:

ZIPフォーマットが作成以来変更されていないとは思えない。

作者は5秒ごとに更新しているけれども。手動で編集する意味もない。
どうでもいい。それならそのままにしておこう。ただ、データの一部がµlを通して解析されているので、全部ここに移そうと思ったんだ。それは違うと思う。

 
Alexey Oreshkin:

Webrequestで このファイルを入手しました。Zipで普通に開けるし、Sharpでも問題ない。手作業でリパッケージすることはできません。
http://api.bestchange.ru/info.zip.

メッセージありがとう。何とかします。

第二に、zipでデータをパッケージするライブラリの多くは、zipのフォーマットを極端に軽視しています。CZipはオープンな非商用プロジェクトであることを忘れないでください。ですから、あなたはCZipにあらゆる種類のがらくたを与えることによって、その雑食性を望むことはできません。

 
Vasiliy Sokolov:

メッセージをありがとう。調べてみるよ。

第二に、zip形式でデータをパッケージするライブラリの多くは、その形式を極端に無視して扱います(hello Microsoft;)ので、バイナリの周りをタンバリンで踊りながら、中身が何であるかを暗示しなければなりません。CZipはオープンな非商用プロジェクトであることを忘れないでください。だから、あなたはCZipにあらゆる種類のガラクタを与えることによって、その雑食性を望むことはできません。

Vasily、不満はないが、いずれにせよ、この問題が前向きに解決されることを願っている。:)

 

Vasily、こんにちは!

WebRequestで取得したZIPファイルのバイト列をZIPアーカイブに変換し、MQL5ツールを使ってディスクに解凍する必要があります。

あなたの記事を読んで、これが解決策かもしれないと気づきました。MetaEditorはコンパイル時にCZipクラスライブラリのエラーを理由に実行ファイルをビルドできません。

CZipクラスのメソッド、特にCreateFromCharArray()とUnpackZipArchive()をスクリプトコードに直接含めて使用することは可能でしょうか?

ありがとうございます。

 
Vasiliy Sokolov #:

悪名高い構造のキャスティングは悪態をつくことである。修正版を添付ファイルに保管してください。

#include <Zip\Zip.mqh>

z


Vasily, mt5用のライブラリを修正してください。
ライブラリは記事から引用しました。