Уважаемый 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 еще настолько игрушечный, что работа с многомерными массивами через файлы для него непосильная задача, или разработчики считают небезопасным для пользователя записывать многомерные массивы в файл :))
вобщем я в недоумении