По моему, скобки
ArrayResize(Tic_Array[], size);. // определяю размерность массива ArrayInitialize(Tic_Array[], 1); // пытаюсь проин. все элементы 1 -ми
Добрый вечер!
Спасибо, что откликнулись.
На [] выдает ошибку... да и в учебники тоже функция вызывается с массивом без скобок ( https://docs.mql4.com/ru/array/ArrayResize )
Ну все равно, свежая идея уже хорошо))
Спасибо!
в ините определите ну хоть какой то размер первого измерения, а потом резистом подгоняйте как надо, иначе толка не будет.
xrust:
в ините определите ну хоть какой то размер первого измерения, а потом резистом подгоняйте как надо, иначе толка не будет.
Доброе утро!
Спасибо большое, все вроде заработало))
Спасибо!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день!
Пожалуйста, помогите разобраться с кодом.
В глобальной области, описываю двухмерный динамически созданный массив, который инициализируется в функции Get_From_file.
Программка читает данные из CSV файла в string data до переноса каретки на другую строку (в файле), а потом копирует их в другие переменные типа string. В конце концов, строковые данные в этих переменных я преобразовываю в тип double(преобразование проходит успешно, (проверял поставив Alert(); в цикле) и записываю в динамически созданный массив, в котором задано количество элементов в первом измерении по количеству строк в файле. Я никак не могу понять, почему у меня массив не инициализируется данными. Данные из файла вытаскиваются удачно, размерность массива соответствует количество записей в файле.
Буду признателен если кто-нибудь поможет. Заранее спасибо!
Вот код.
double Tic_Array [][7];
int Tic_Array_Size;
string file_name = "Текстовый документ.txt";
int Get_From_file (string file_name){
int handle = FileOpen(file_name, FILE_CSV|FILE_READ );
if (handle > 0){
Alert("Файл открыт!");
FileSeek(handle, 0, SEEK_SET);
FileSeek(handle, 0, SEEK_END);
int size = FileTell(handle); // определяю количество строк в файле
ArrayResize(Tic_Array, size);. // определяю размерность массива
ArrayInitialize(Tic_Array, 1); // пытаюсь проин. все элементы 1 -ми
FileSeek(handle, 0, SEEK_SET);
Alert(size);
if (FileSeek(handle, 0, SEEK_SET) == true){
for (Tic_Array_Size = 0; Tic_Array_Size <= size;Tic_Array_Size++){
string data = FileReadString(handle, 1);
string _year = StringSubstr(data, 0, 4);
double year = StrToDouble(_year);
Tic_Array [Tic_Array_Size ][0] = year; // не получается присвоить значение переменной соответствующему элементу маасива
string _month = StringSubstr(data, 5,2);
double month = StrToDouble(_month);
Tic_Array [Tic_Array_Size][1] = month; // не получается присвоить значение переменной соответствующему элементу маасива
string _day = StringSubstr(data, 8, 2);
double day = StrToDouble(day);
Tic_Array [Tic_Array_Size][2] = day; // не получается присвоить значение переменной соответствующему элементу маасива
/*****************************************************************************/
string _hour = StringSubstr(data, 11, 2);
double hour = StrToDouble (_hour);
Tic_Array [Tic_Array_Size][3] = hour; // не получается присвоить значение переменной соответствующему элементу маасива
string _minute = StringSubstr(data, 14, 2);
double minute = StrToDouble (_minute);
Tic_Array [Tic_Array_Size][4] = minute; // не получается присвоить значение переменной соответствующему элементу маасива
string _seconds = StringSubstr(data, 17, 2);
double seconds = StrToDouble (_seconds);
Tic_Array [Tic_Array_Size][5] = seconds; // не получается присвоить значение переменной соответствующему элементу маасива
/*******************************************************************************/
int index = StringFind(data, " ", 22);
string _ask = StringSubstr(data, 22, index-19);
double ask = StrToDouble(_ask);
string _bid = StringSubstr(data, index+3, 6);
double bid = StrToDouble(_bid);
Tic_Array [Tic_Array_Size][6] = ask; // не получается присвоить значение переменной соответствующему элементу маасива
Tic_Array [Tic_Array_Size][7] = bid; // не получается присвоить значение переменной соответствующему элементу маасива
Alert("Загружен ", Tic_Array_Size, " индекс!");
Alert(Tic_Array_Size);
Alert(Tic_Array [Tic_Array_Size][6]);// выдает значение 0, вместо значния переменной bid
}
}else {
Alert("Неудается переместиться в начало, ошибка ", GetLastError()," !" );
}
}else {
Alert("Неудается открыть файл, ошибка ", GetLastError(), " !");
}
if (FileSeek(handle, 0, SEEK_CUR) == FileSeek(handle, 0, SEEK_END)){
Alert("Файл прочитан до конца!");
FileClose(handle);
}else{
Alert("Ошибка, файл НЕ ПРОЧИТАН до конца!");
FileClose(handle);
}
return ;
}
int init()
{
//----
Get_From_file (file_name);
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
Вот данные из файла
2010.07.02 21:59:59 1.3366 1.3363
2010.07.02 17:52:10 1.2576 1.2574
2010.07.08 20:58:41 1.268 1.2678
2010.07.08 20:58:41 1.268 1.2678
2010.07.08 20:58:52 1.2679 1.2677
2010.07.08 20:58:53 1.2679 1.2677
2010.07.08 20:58:53 1.268 1.2678
2010.07.08 20:58:54 1.2679 1.2677
2010.07.08 20:58:54 1.268 1.2678
2010.07.08 20:58:56 1.2679 1.2677
2010.07.08 20:58:57 1.268 1.2678
2010.07.08 20:58:58 1.2681 1.2679
2010.07.08 20:58:59 1.268 1.2678
2010.07.08 20:59:02 1.2681 1.2679
2010.07.08 20:59:03 1.2682 1.268
2010.07.08 20:59:05 1.2681 1.2679
2010.07.08 20:59:06 1.2681 1.2679
2010.07.08 20:59:06 1.268 1.2678
2010.07.08 20:59:12 1.2681 1.2679
2010.07.08 20:59:12 1.268 1.2678
2010.07.08 20:59:14 1.268 1.2678
2010.07.08 20:59:15 1.2681 1.2679
2010.07.08 20:59:16 1.268 1.2678
2010.07.08 20:59:18 1.2681 1.2679
2010.07.08 20:59:19 1.268 1.2678
Спасибо!