как создать имя переменной программно?

 

как создать имя переменной примерно так

for(int i=1; i<=10; i++)

{

double "name"+i+"[]";

}‌

 
Посмотрите в сторону "Ассоциативных массивов".
На mql должна быть какая ни какая реализация или в страндартной библиотеке, или в статьях.
 
Sergey Dzyublik:
Посмотрите в сторону "Ассоциативных массивов".
На mql должна быть какая ни какая реализация или в страндартной библиотеке, или в статьях.

Цель

создание буферов для графиков количество которых не известно но меньше 512

ну и в принципе данная конструкция может пригодиться где угодно.

Я когда то писал ‌подобное но забыл это был шаблон.

вообще вопрос нужно уточнить

допустим мы программно собираем строку‌

‌string cmd;

for(int i=1; i<=10; i++)

{

cmd=cmd+"double name"+i+"[]; ";

}‌

теперь надо выполнить ‌cmd

как это сделать‌?

 
AT-2000:

Цель

создание буферов для графиков количество которых не известно но меньше 512

ну и в принципе данная конструкция может пригодиться где угодно.

Я когда то писал ‌подобное но забыл это был шаблон.

вообще вопрос нужно уточнить

допустим мы программно собираем строку‌

‌string cmd;

for(int i=1; i>10; i++)

{

cmd=cmd+"double name"+i+"[]; ";

}‌

теперь надо выполнить ‌cmd

как это сделать‌?

А не проще использовать массив?
 
struct buffer
  {
   double buf[];
  };

buffer   MyBuffer[];  // буфер для буферов
 
Alexey Viktorov:
А не проще использовать массив?
я этой функцией хочу объявить 10 массивов.
 
Taras Slobodyanik:

мне надо менять

buf[]

‌чтобы было

buf1[] buf2[] buf3[] buf...n[] 


 
AT-2000:
я этой функцией хочу объявить 10 массивов.
А что мешает сделать массив структур? Или двухмерный массив.
 
Alexey Viktorov:
А что мешает сделать массив структур? Или двухмерный массив.

string cmd;

for(int i=1; i>10; i++)

{

cmd=cmd+"double name"+i+"[]; ";

}‌

теперь надо выполнить ‌cmd

вопрос как запустить ‌cmd?

все остальное обходные решения. Я просто привел пример где это может понадобиться.‌

 
AT-2000:

string cmd;

for(int i=1; i>10; i++)

{

cmd=cmd+"double name"+i+"[]; ";

}‌

теперь надо выполнить ‌cmd

вопрос как запустить ‌cmd?

все остальное обходные решения. Я просто привел пример где это может понадобиться.‌


В MQL нет eval оператора, это компилируемый язык программирования.
Идея превращения строки в код и его исполнение на лету - не реализуемая идея средствами MQL.

Если необходимо связать сущность с неким значением или текстовой строкой уникально идентифицирующую ее - смотрите в сторону  "Ассоциативных массивов".
 
AT-2000:

мне надо менять

‌чтобы было



struct buffer
{
double buf[];
};

buffer   MyBuffer[];  // буфер для буферов


ArrayResize(MyBuffer,10); // Десять массивов

ArrayResize(MyBuffer[0].buf,3); // размер первого буфера
ArrayResize(MyBuffer[1].buf,5); // размер второго буфера
...
ArrayResize(MyBuffer[9].buf,5); // размер десятого буфера
Причина обращения: