Discusión sobre el artículo "Trabajamos con archivos ZIP con los medios de MQL5, sin usar bibliotecas ajenas" - página 6

 
Sería bueno presentar la biblioteca a const. Por ejemplo
   ENUM_ZIP_TYPE        ZipType(void) const; 
 
fxsaber:

Sí, el archivo adjunto funciona. Pero el mío no. Eso es raro.

Archivos adjuntos:
info.zip  575 kb
 
Alexey Oreshkin:

Sí, el archivo adjunto funciona. Pero el mío no. Eso es raro.

#include <Zip\Zip.mqh> // https://www.mql5.com/es/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
}

Vuelve a empaquetarlo con otra cosa.

 
fxsaber:

Reempaquetarlo con otra cosa.

Recibo este archivo a través de webrequest. Zip lo abre normalmente, Sharp tampoco tiene problemas con él. Reempaquetar a mano no es una opción. El punto es la automatización.
obtengo el archivo aquí: http://api.bestchange.ru/info.zip.

 
Alexey Oreshkin:

Recibo este archivo a través de webrequest. Zip lo abre normalmente, Sharp tampoco tiene problemas con él. Reempaquetar a mano no es una opción. El punto es la automatización.
Obtengo el archivo aquí: http://api.bestchange.ru/info.zip.

También saco zips de la red. Pero no he tenido "suerte" como tú. Eso ya es cosa del autor de la biblioteca. Dudo que el formato ZIP no haya sido modificado desde su creación.

 
fxsaber:

Dudo que el formato ZIP no se haya modificado desde su creación.

Podría ser, aunque los autores lo actualizan cada 5 segundos. Tampoco tiene sentido editarlo manualmente.
Da igual. Lo dejaré como está entonces. Es sólo que algunos de los datos se analizan a través de µl, así que pensé en trasladarlos todos aquí. Supongo que no es el caso.

 
Alexey Oreshkin:

Recibo este archivo a través de webrequest. Zip lo abre normalmente, Sharp tampoco tiene problemas con él. Reempaquetar a mano no es una opción. El punto es la automatización.
obtengo el archivo aquí: http://api.bestchange.ru/info.zip.

Gracias por el mensaje. Lo solucionaremos.

En cuanto al formato zip en sí, puede ser muy diferente, en primer lugar, y en segundo lugar, un montón de bibliotecas que empaquetan datos en zip tratan su formato con extrema indiferencia (hola Microsoft;) Así que tienes que bailar alrededor del binario con una pandereta, dando a entender lo que hay dentro. Permíteme recordarte que CZip es un proyecto abierto no comercial. Así que no puedes esperar que sea omnívoro alimentándolo con todo tipo de basura, así que por favor entiende este hecho.

 
Vasiliy Sokolov:

Gracias por el mensaje. Lo investigaremos.

En cuanto al formato zip en sí, puede ser muy diferente, en primer lugar, y en segundo lugar, muchas bibliotecas que empaquetan datos en zip tratan su formato con extrema indiferencia (hola Microsoft;) Así que tienes que bailar alrededor del binario con una pandereta, dando a entender lo que hay dentro. Permíteme recordarte que CZip es un proyecto abierto no comercial. Así que no puedes esperar que sea omnívoro alimentándolo con todo tipo de basura, así que por favor entiende este hecho.

Vasily, no me quejo, pero en cualquier caso espero que este asunto se resuelva positivamente. :)

 

Vasily, ¡hola!

Hay una necesidad de convertir una secuencia de bytes de un archivo ZIP obtenido por WebRequest en un archivo ZIP y descomprimirlo en el disco utilizando herramientas MQL5.

Después de leer tu artículo, me he dado cuenta de que esta puede ser una solución. Sin embargo, no puedo aplicar esta solución - al compilar, MetaEditor no puede construir el archivo ejecutable citando errores en la biblioteca de clases CZip.

¿Es posible utilizar por separado los métodos de la clase CZip, en particular CreateFromCharArray() y UnpackZipArchive(), incluyéndolos directamente en el código del script y cómo hacerlo correctamente?

Gracias de antemano.

 
Vasiliy Sokolov #:

El reparto notorio de estructuras es jurar. Mantenga la versión corregida en el archivo adjunto.

#include <Zip\Zip.mqh>

z


Vasily, por favor, corrija la biblioteca para mt5.
Tomé la biblioteca del artículo.