Можно ли извлечь файл из папки zip программным способом? Есть сжатый файл txt в папке Files\MQL4. Нужно извлечь файл txt в папку Files\MQL4.
- Новая версия платформы MetaTrader 4 build 825: Аренда в Маркете и тестирование индикаторов
- Советники: Graal for tester
- MetaEditor отключился от MQL Storage
Благодарю
Чем вызвана ошибка в CryptDecode? Подобран неверный ключ шифрования? Описание ошибки: "internal error- внутренняя ошибка".
//+------------------------------------------------------------------+ //| update.mq4 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #include <stdlib.mqh> #property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { string cookie=NULL,headers; char post[],result[]; int res,filehandle; //--- для работы с сервером необходимо добавить URL "https://www.cftc.gov/files/dea/history/deacot2016.zip" //--- в список разрешенных URL (Главное меню->Сервис->Настройки, вкладка "Советники"): string google_url="http://www.cftc.gov/files/dea/history/deacot2016.zip"; // string google_url="http://www.cftc.gov/files/dea/history/deahistfo2016.zip"; //--- обнуляем код последней ошибки ResetLastError(); //--- загрузка int timeout=5000; //--- timeout менее 1000 (1 сек.) недостаточен при низкой скорости Интернета res=WebRequest("GET",google_url,cookie,NULL,timeout,post,0,result,headers); //--- проверка ошибок if(res==-1) { Alert("Ошибка в WebRequest. Описание ошибки: ",ErrorDescription(GetLastError())); //--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления MessageBox("Необходимо добавить адрес '"+google_url +"' в список разрешенных URL во вкладке 'Советники'","Ошибка",MB_ICONINFORMATION); } else { //--- успешная загрузка Alert("Файл успешно загружен, Размер файла =%d байт.",ArraySize(result)); if(3==4) { //--- сохраняем данные в файл zip filehandle=FileOpen("deacot2016.zip",FILE_WRITE|FILE_BIN); // int filehandle=FileOpen("deahistfo2016.zip",FILE_WRITE|FILE_BIN); //--- проверка ошибки if(filehandle!=INVALID_HANDLE) { //--- сохраняем содержимое массива result[] в файл zip FileWriteArray(filehandle,result,0,ArraySize(result)); //--- закрываем файл FileClose(filehandle); } else Alert("Ошибка в FileOpen/zip. Описание ошибки: ",ErrorDescription(GetLastError())); } } //--- unpacking uchar key[]={1,0,0,0}; uchar data[]; int i=CryptDecode(CRYPT_ARCH_ZIP,result,key,data); //--- checking errors if(i==0) { Alert("Ошибка в CryptDecode. Описание ошибки: ",ErrorDescription(GetLastError())); return; } else Alert("i = ",i," size of data = ",ArraySize(data)); //--- сохраняем данные в файл txt filehandle=FileOpen("z.txt",FILE_WRITE|FILE_TXT); //--- проверка ошибки if(filehandle!=INVALID_HANDLE) { //--- сохраняем содержимое массива data[] в файл txt FileWriteArray(filehandle,data,0,ArraySize(data)); //--- закрываем файл FileClose(filehandle); } else Alert("Ошибка в FileOpen/txt. Описание ошибки: ",ErrorDescription(GetLastError())); } //+------------------------------------------------------------------+
вроде все сделал правильно..
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь