Obrigado, vou estudá-lo. Estou cansado de fazer atualizações periódicas de arquivos em diferentes arquivos para os clientes. Consome muito tempo e precisa de automação.
Não é possível empacotar arquivos ex5 e ex4, e preciso lançá-los exatamente.
Aqui está um script de teste com base no script proposto. O mq5 é lançado sem problemas; se a resolução do menu for ex5, todos os erros de nome de arquivo errado serão 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; // Criar arquivo zip vazio.//+------------------------------------------------------------------+//| Função de início do 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)
{
//criar o catálogo/salvar o arquivo em um arquivoconststring archive = "MQL5/Files/Test.zip";
if(Zip.SaveZipToFile(archive))
{
Print("Packed file saved: ", archive);
}
}
}
//+----------------------------------------------------------------
Mais uma vez, obrigado aos desenvolvedores pela segurança de trabalhar com arquivos..... mais uma vez, outra muleta para fazer.
Язык MQL5 развивается, и в него постоянно добавляются новые функции для работы с данными. С некоторых пор, благодаря нововведениям, стало возможно работать с ZIP-архивами штатными средствами MQL5 без привлечения сторонних библиотек DLL. Данная статья подробно описывает, как это делается, на примере описания класса CZip — универсального инструмента для чтения, создания и модификации ZIP-архивов.
Este é o tópico de discussão do artigo que você mencionou. Vi apenas a possibilidade de fazer upload do ZIP para uma pasta no disco. Mas eu gostaria de fazer o upload em uma linha de uma só 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("Selecione os arquivos para download"., "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("Ocorreu um erro de sistema durante o download do arquivo. Número do erro: "+(string)last_error);}
else { ENUM_ZIP_ERROR error=(ENUM_ZIP_ERROR)(last_error-ERR_USER_ERROR_FIRST); printf("Ocorreu um erro no processamento do arquivo no momento de seu download: "+EnumToString(error));}
return;
}
CZipFile* content = Zip.ElementAt(0);//ler o arquivo número 0 no arquivouchar file_content[];
content.GetUnpackFile(file_content);// descompactá-lo na matriz file_contentstring s = CharArrayToString(file_content,0,-1,CP_UTF8);//CP_ACPstring sa[];
int k=StringSplit(s,'\n',sa);//--- dividir a string em substringsfor(int i=0;i<k;i++){
PrintFormat("result[%d]=\"%s\"",i,sa[i]);
}
}
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Como usar essa biblioteca para realizar a tarefa de fazer o backup de arquivos:
Você precisa criar um arquivo no qual possa colocar em pastas
\MQL5\Experts\
\MQL5/Indicadores\
\MQL5/Include.
etc. ?
Como implementar essa tarefa de backup de arquivos usando essa biblioteca:
Você precisa criar um arquivo no qual possa distribuir os arquivos em pastas
\MQL5\Experts\
\MQL5/Indicadores\
\MQL5\Include\
etc. ?
Aqui está um bom exemplo.
Aqui está um bom exemplo.
Obrigado, vou estudá-lo. Estou cansado de fazer atualizações periódicas de arquivos em diferentes arquivos para os clientes. Consome muito tempo e precisa de automação.
Aqui está um bom exemplo.
Obrigado, funciona!
Adendo.
Não é possível empacotar arquivos ex5 e ex4, e preciso lançá-los exatamente.
Aqui está um script de teste com base no script proposto. O mq5 é lançado sem problemas; se a resolução do menu for ex5, todos os erros de nome de arquivo errado serão 5002.
Mais uma vez, obrigado aos desenvolvedores pela segurança de trabalhar com arquivos..... mais uma vez, outra muleta para fazer.Olá,
Tenho um arquivo ZIP com um arquivo CSV nele.
Como ler esse arquivo em uma string. (Sem salvar no disco e ler do disco)
Olá,
Tenho um arquivo ZIP com um arquivo CSV nele.
Como ler esse arquivo em uma string. (Sem salvar no disco e ler do disco)
https://www.mql5.com/pt/articles/1971
https://www.mql5.com/pt/articles/1971
Este é o tópico de discussão do artigo que você mencionou. Vi apenas a possibilidade de fazer upload do ZIP para uma pasta no disco. Mas eu gostaria de fazer o upload em uma linha de uma só vez.
Se alguém precisar, aqui está um script pronto para ler o arquivo em uma linha.
Faça o download da pasta ZIP e do Dictionary.mqh aqui https://www.mql5.com/en/code/27955 - eles funcionam.