Уважаемый Pavel VL,
Многие тоже в недоумении от Ваших слабооформленных вопросов. Ряд вопросов и резких утверждений, сформулированных Вами за последнее время, позволяет сделать некоторые выводы.
Придерживайтесь, пожалуйста, следующих моментов:
1) если есть вопрос, то четко его формулируйте
2) прикладывайте спорный код (желательно полностью)
3) воздержитесь от выводов
Многие тоже в недоумении от Ваших слабооформленных вопросов. Ряд вопросов и резких утверждений, сформулированных Вами за последнее время, позволяет сделать некоторые выводы.
Придерживайтесь, пожалуйста, следующих моментов:
1) если есть вопрос, то четко его формулируйте
2) прикладывайте спорный код (желательно полностью)
3) воздержитесь от выводов
пожалуйста код. загнал в скрипт.
//+------------------------------------------------------------------+ //| CopyRates.mq4 | //| Copyright © 2006, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" int Fd; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- MFileWR(); Sleep(5000); MFileRD(); //---- return(0); } double MFileWR(){ string FileName; double array1[][6]; //ArrayResize(array1,ml); int handle; ArrayCopyRates(array1,Symbol(),Period()); Fd = ArrayRange( array1,0); Print(Fd); Print("Current bar ",TimeToStr(array1[0][0])," Open Price ", array1[0][1]," Total 1 dim ",Fd); FileName="RATES_Script_"+Symbol()+Period(); // запись массива в файл handle=FileOpen(FileName,FILE_BIN|FILE_READ|FILE_WRITE); if(handle>0) { FileWriteArray(handle, array1, 0,Fd); FileFlush(handle); FileClose(handle); } return(0); } //+------------------------------------------------------------------+ double MFileRD(){ string FileName; double array1[100000][6]; int handle; int LastError; FileName="RATES_Script_"+Symbol()+Period(); // чтение массива из файла handle=FileOpen(FileName,FILE_BIN|FILE_READ|FILE_WRITE); if(handle>0) { int Fdr = FileReadArray(handle, array1, 0,Fd); Print("Elements Read ",Fdr); LastError=GetLastError(); if(LastError>0)Print(LastError/*," ",ErrorDescription(LastError)*/); FileFlush(handle); FileClose(handle); } Fd = ArrayRange( array1, 0); Print(Fd); for (int i=0; i<Fd; i++){ Print("Open Time: ",TimeToStr(array1[i][0])); Print("Open price : ",array1[i][1]); Print("Low : ",array1[i][2]); Print("High : ",array1[i][3]); Print("Close : ",array1[i][4]); Print("Volume : ",array1[i][5]); } return(0); }
К сожалению, Вы упустили из виду саму чуть функции чтения массива.
Записали количество записей по первой размерности, забыв, что надо бы умножить на 6 (вторая размерность). Постарайтесь самостоятельно разобраться в своем коде.
Многомерные массивы нормально записываются и читаются:
Записали количество записей по первой размерности, забыв, что надо бы умножить на 6 (вторая размерность). Постарайтесь самостоятельно разобраться в своем коде.
Многомерные массивы нормально записываются и читаются:
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double MFileWR() { double array1[4][4]; int handle; //---- заполним массив for(int i=0;i<4;i++) for(int j=0;j<4;j++) array1[i][j]=i*4+j; //---- запись массива в файл handle=FileOpen("TestFile",FILE_BIN|FILE_WRITE); if(handle>0) { FileWriteArray(handle,array1,0,16); FileFlush(handle); FileClose(handle); } //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double MFileRD() { double array1[4][4]; int handle; //---- handle=FileOpen("TestFile",FILE_BIN|FILE_READ); if(handle>0) { FileReadArray(handle,array1,0,16); FileClose(handle); } //---- распечатаем массив for(int i=0;i<4;i++) { string str=""; for(int j=0;j<4;j++) { str=str+array1[i][j]+" "; } Print("#",i," ",str); } //---- return(0); } //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- MFileWR(); MFileRD(); //---- return(0); }
Renat 12.02.06 17:25
Уважаемый Pavel VL,
Многие тоже в недоумении от Ваших слабооформленных вопросов. Ряд вопросов и резких утверждений, сформулированных Вами за последнее время, позволяет сделать некоторые выводы.
Уважаемый Pavel VL,
Многие тоже в недоумении от Ваших слабооформленных вопросов. Ряд вопросов и резких утверждений, сформулированных Вами за последнее время, позволяет сделать некоторые выводы.
А так как я не обязан быть приторно корректным, то скажу пряма !!!
Pavel VL - вы крикливый мозгоклюй. Доказательство - все ваши посты.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
например FileWriteArray() вроде записывает 2-мерный массив, а FileReadArray() уже читает оттуда какой-то мусор. в то же время одномерные массивы успешно записываются и читаются.
объясните пожалуйста, или это MQL4 еще настолько игрушечный, что работа с многомерными массивами через файлы для него непосильная задача, или разработчики считают небезопасным для пользователя записывать многомерные массивы в файл :))
вобщем я в недоумении