Gracias, lo estudiaré. Cansado de las actualizaciones periódicas de los archivos en diferentes archivos a los clientes. Mucho tiempo, necesidad de automatización.
No se puede empaquetar ex5 , ex4 archivos, y tengo que tirar exactamente.
He aquí un script de prueba sobre la base de la propuesta. mq5 lanza sin problemas, si la resolución de menú ex5 entonces todo el error nombre de archivo incorrecto 5002.
//+------------------------------------------------------------------+//|UpdateShop.mq5//|Copyright 2021, MetaQuotes Ltd. |//| https://www.mql5.com//+------------------------------------------------------------------+#property copyright"Copyright 2021, MetaQuotes Ltd."#property link"https://www.mql5.com"#property version"1.00"// #define UNICODE_WARNING#include <mql5/FileReader.mqh>
#include <Zip/Zip.mqh>
string sdir="MQL5/Experts/trading-shop.ru/";
string filelist[]=
{
"sovetnikov.net/WSO EA.mq5",
"sovetnikov.net/SN Liza EA.mq5"
};
CZip Zip; // Crear archivo zip vacío.//+------------------------------------------------------------------+//| Función de inicio del programa de script|//+------------------------------------------------------------------+voidOnStart()
{
//---int added=0;
string listing="";
for(int i=0; i<ArraySize(filelist); i++)
{
string name=sdir+filelist[i];
CZipFile *file = new CZipFile();
if(!file.AddFile(name)
|| !Zip.AddFile(file))
{
delete file;
}
else
{
added++;
Print(" + "+name);
}
}
if(added>0)
{
//crear el catálogo/guardar el archivo en un ficheroconststring archive = "MQL5/Files/Test.zip";
if(Zip.SaveZipToFile(archive))
{
Print("Packed file saved: ", archive);
}
}
}
//+----------------------------------------------------------------
Gracias de nuevo a los desarrolladores para la seguridad de trabajar con archivos..... de nuevo otras muletas que hacer.
Язык MQL5 развивается, и в него постоянно добавляются новые функции для работы с данными. С некоторых пор, благодаря нововведениям, стало возможно работать с ZIP-архивами штатными средствами MQL5 без привлечения сторонних библиотек DLL. Данная статья подробно описывает, как это делается, на примере описания класса CZip — универсального инструмента для чтения, создания и модификации ZIP-архивов.
Este es el hilo de discusión del artículo que mencionas. Sólo he visto la posibilidad de subir el ZIP a una carpeta del disco. Pero me gustaría subirlo a una línea a la vez.
#property copyright"Copyright 2015, Vasiliy Sokolov."#property link"https://www.mql5.com"#property version"1.00"int is_common=1;
#include <Zip\Zip.mqh>
CZip Zip;
voidOnStart(){
string filenames[]; if(FileSelectDialog("Seleccionar archivos para descargar"., "CSV/", "CSV files (*.csv)|*.csv;*.zip|ZIP files (*.zip)|*.zip|All files (*.*)|*.*", FSD_ALLOW_MULTISELECT|(is_common?FSD_COMMON_FOLDER:0), filenames, "data.txt")>0){int total=ArraySize(filenames);for(int i=0; i<total; i++){Print(i, ": ", filenames[i]);}} else{Print("Files not selected");}
bool res=Zip.LoadZipFromFile(filenames[0],FILE_COMMON);//считать 0й файл из выбранных
if(!res) {
uint last_error=GetLastError();
if(last_error<ERR_USER_ERROR_FIRST){printf("Se ha producido un error del sistema al descargar el archivo. Número de error: "+(string)last_error);}
else { ENUM_ZIP_ERROR error=(ENUM_ZIP_ERROR)(last_error-ERR_USER_ERROR_FIRST); printf("Se ha producido un error al procesar el archivo en el momento de su descarga: "+EnumToString(error));}
return;
}
CZipFile* content = Zip.ElementAt(0);//leer el fichero número 0 del archivouchar file_content[];
content.GetUnpackFile(file_content);// descomprimirlo en la matriz file_contentstring s = CharArrayToString(file_content,0,-1,CP_UTF8);//CP_ACPstring sa[];
int k=StringSplit(s,'\n',sa);//--- divide la cadena en subcadenasfor(int i=0;i<k;i++){
PrintFormat("result[%d]=\"%s\"",i,sa[i]);
}
}
Cómo utilizar esta biblioteca para realizar la tarea de copia de seguridad de archivos:
Es necesario crear un archivo en el que se puede poner en carpetas
\MQL5\Expertos\
\MQL5/Indicadores\
\MQL5/Include.
etc. ?
Cómo implementar dicha tarea de copia de seguridad de archivos utilizando esta biblioteca:
Necesitas crear un archivo en el que puedas dispersar los ficheros en carpetas
\MQL5\Experts\
\MQL5/Indicadores\
\MQL5/Incluir
etc. ?
He aquí un buen ejemplo.
Heaquí un buen ejemplo.
Gracias, lo estudiaré. Cansado de las actualizaciones periódicas de los archivos en diferentes archivos a los clientes. Mucho tiempo, necesidad de automatización.
Heaquí un buen ejemplo.
Gracias, ¡funciona!
Apéndice.
No se puede empaquetar ex5 , ex4 archivos, y tengo que tirar exactamente.
He aquí un script de prueba sobre la base de la propuesta. mq5 lanza sin problemas, si la resolución de menú ex5 entonces todo el error nombre de archivo incorrecto 5002.
Gracias de nuevo a los desarrolladores para la seguridad de trabajar con archivos..... de nuevo otras muletas que hacer.Hola,
Tengo un archivo ZIP con un archivo CSV en él.
¿Cómo leer este archivo en una cadena. (Sin guardar en disco y leer desde disco)
Hola,
Tengo un archivo ZIP con un archivo CSV en él.
¿Cómo leer este archivo en una cadena. (Sin guardar en disco y leer desde disco)
https://www.mql5.com/es/articles/1971
https://www.mql5.com/es/articles/1971
Este es el hilo de discusión del artículo que mencionas. Sólo he visto la posibilidad de subir el ZIP a una carpeta del disco. Pero me gustaría subirlo a una línea a la vez.
Si alguien lo necesita, aquí es un script listo para leer el archivo en una línea.
Carpeta ZIP y Dictionary.mqh descargar aquí https://www.mql5.com/en/code/27955 - funcionan.