Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2295

 
ANDREY #:

Но для меня до сих пор остается тайной ....  позволяет ли  mql4   не изменить, а  заполнить  пустой статический  массив в файле mqh первоначальными значениями при помощи кода  mql 4 .

Спасибо за помощь.

Любой включаемый файл после компиляции остается неизменным. Если Вы хотите записывать, сохранять, а потом считывать, то создавайте файл в удобном Вам формате и удобном месте.

 
Aleksei Stepanenko #:

Или

Если  я не ошибаюсь Вы написали код который заполняет массив значениями.

Но из этого кода не понятно где лежит пустой массив , который заполняется в этом коде? В файле mqh , или в каком то другом файле НЕ mqh.

 
Tretyakov Rostyslav #:

Любой включаемый файл после компиляции остается неизменным. Если Вы хотите записывать, сохранять, а потом считывать, то создавайте файл в удобном Вам формате и удобном месте.

Спасибо за ценную информацию. Эту истину я сегодня уже давно усвоил....

 

Да всё правильно, напишите две функции запись из массива в файл и чтение из файла в массив. И потом используйте их как-то так:

double a[10000,5];

int OnInit()
   {
   LoadArrayFromFile(file_name,a);
   return(INIT_SUCCEEDED);
   }

void OnDeinit()
   {
   WriteArrayToFile(file_name,a);
   }

А внутри советника производите нужные операции с массивом

 
ANDREY #:

Если  я не ошибаюсь Вы написали код который заполняет массив значениями.

Но из этого кода не понятно где лежит пустой массив , который заполняется в этом коде? В файле mqh , или в каком то другом файле НЕ mqh.

Это два примера, как заполнить массив значениями. Массив объявляется в теле программы. В первом примере он сразу объявляется и заполняется, во втором случае отдельно объявляется, а потом поэлементно заполняется.

 
Aleksei Stepanenko #:

Да всё правильно, напишите две функции запись из массива в файл и чтение из файла в массив. Что-то типа такого.

А внутри советника производите нужные операции с массивом

Ок Спасибо. 

 
Aleksei Stepanenko #:

Это два примера, как заполнить массив значениями. Массив объявляется в теле программы. В первом примере он сразу объявляется и заполняется, во втором случае отдельно объявляется, а потом поэлементно заполняется.

Понятно что пустой массив до его заполнения , (то есть только объявленный, но не заполненный массив), лежит в теле ( в коде) Советника. Потом в теле этого же Советника этот массив инициализируется, то есть ,заполняется значениями.
ВОПРОС. А получится у меня только объявить этот же массив но не в теле Советника , а в файле mqh . А заполнить объявленный в файле mqh  массив значениями (инициализировать) в теле Советника? 

Обращаю Ваше внимание на то, что я говорю не об изменении значений уже заполненного массива в файле mqh , а о первоначальном заполнении  пустого массива в файле mqh   первоначальными значениями.

В предыдущих постах однозначно говорилось , что изменять уже заполненные  значения массива в файле mqh  при помощи кода mql4 невозможно.
Я же в своем вопросе спрашиваю не об изменении а о первоначальном заполнении значениями.

Спасибо

 
ANDREY #:

У меня есть массив с большим количеством заполненных элементов. Не хранить же мне его в основном коде программы!!!!!.

Как написано в учебнике, файлы mqh  как раз и созданы что бы разгрузить основной код и хранить любые фрагменты кода, особенно очень больше в этих файлах  mqh.


Вы путаете данные, значения переменных, массивов и код программы. Включаемые файлы это для кода программы. А данные это файлы, базы данных, инпут переменные и другие типы переменных. 
 
ANDREY #:

Понятно что пустой массив до его заполнения , (то есть только объявленный, но не заполненный массив), лежит в теле ( в коде) Советника. Потом в теле этого же Советника этот массив инициализируется, то есть ,заполняется значениями.
ВОПРОС. А получится у меня только объявить этот же массив но не в теле Советника , а в файле mqh . А заполнить объявленный в файле mqh  массив значениями (инициализировать) в теле Советника? 

Обращаю Ваше внимание на то, что я говорю не об изменении значений уже заполненного массива в файле mqh , а о первоначальном заполнении  пустого массива в файле mqh   первоначальными значениями.

В предыдущих постах однозначно говорилось , что изменять уже заполненные  значения массива в файле mqh  при помощи кода mql4 невозможно.
Я же в своем вопросе спрашиваю не об изменении а о первоначальном заполнении значениями.

Спасибо

Да можно.

 
ANDREY #:

ВОПРОС. А получится у меня только объявить этот же массив но не в теле Советника , а в файле mqh . А заполнить объявленный в файле mqh  массив значениями (инициализировать) в теле Советника?

Можете объявить в mqh, а заполнить в теле. После того как Вы подключили файл mqh, он стал частью листа тела советника. 


ANDREY #:

Обращаю Ваше внимание на то, что я говорю не об изменении значений уже заполненного массива в файле mqh , а о первоначальном заполнении  пустого массива в файле mqh   первоначальными значениями.

Если при объявлении Вы указали размер, то этот массив уже имеет элементы, и они не пустые, а с мусором. Чаще там нули, но не факт.

Причина обращения: