каким образом можно записать в переменную name имя переменной double? - страница 3

 
sergeev:

это не криво. это никакое :)))

Если предложите другой вариант - соглашусь.
 
jartmailru:
Если предложите другой вариант - соглашусь.

в том и дело, что предлагать в данном вопросе вообще нечего.

ни из MQL ни с привлечением внешних либ этого не узнать по той причине, что имен уже не существует после компиляции.

 
sergeev:

ни из MQL ни с привлечением внешних либ этого не узнать по той причине, что имен уже не существует после компиляции.

Ок. Поясню идею.
Работа с переменными идет так:
.
set("count", 15);
int tmp = get("count");
.
Поскольку имена переменных идут как строки, то строки не удаляются.
Естественно, вместо переменных используются функции.
При этом программа имеет доступ к переменным такой же,
какой имеет сам интерпретатор, т.е. имя- значение.
.
Глобальные переменные в общем-то так и сделаны.
И никто не говорит что это не приемлемо.
.
В общем, было бы желание.
 
jartmailru:
Ок. Поясню идею.
Работа с переменными идет так:
.
set("count", 15);
int tmp = get("count");
Совершенно не понятно что происходит в функции set(). Уверен, что задачу, которая перед Вами стоит, можно решить куда более простыми способами, чем попытки "одевания штанов через голову" (извините за прямоту). Создаётся такое ощущение, что Вы на MQL4 пытаетесь программировать как на PHP. Обрисуйте пожалуйста, какая надобность заставила Вас возжелать манипулировать массивом имён переменных?
 
drknn:
Совершенно не понятно что происходит в функции set(). Уверен, что задачу, которая перед Вами стоит, можно решить куда более простыми способами, чем попытки "одевания штанов через голову" (извините за прямоту). Создаётся такое ощущение, что Вы на MQL4 пытаетесь программировать как на PHP. Обрисуйте пожалуйста, какая надобность заставила Вас возжелать манипулировать массивом имён переменных?

Алексей Сергеев попросил предоставить ему рецепт, при помощи которого можно связать имя и значение переменной.
Мне сие- нафик не сдалось, есть более интересные задачи. Спасибо Вам за заботу :-).
Содержимое функции set можно понять из моего поста № 416 667,
https://www.mql5.com/ru/forum/131065
естественно при условии, что я бы это делал не на мокле, а на C++ с классами и объектами.
.
P.S.: задача вовсе не такая уж бессмысленная, как кажется...
подсказка: если функцию set(имя, значение) изменить на set(время, имя, значение)
то ... может получиться что-то интересное ;-)
.
P.S.2: на php все же имелось в виду
$var = 'myvar';
$$var = <<< EOT
hallo world
EOT;
echo $var . ' = ' . $$var;

 
jartmailru:
Алексей Сергеев попросил предоставить ему рецепт, при помощи которого можно связать имя и значение переменной.

Рецепт есть, но повторяю - это "одевание штанов через голову".

Объявляем 2 массива одинаковой размерности - один типа string, другой типа double. В строковый массив вносим имена double-переменных. Себе на листике помечаем для какой переменной какой индекс ячейки массива задействуется. далее в коде, везде, где нужно проинициализировать double-переменную значением, вместо того, чтоб вносить значение в саму переменную, вносим его в ту ячейку double-массива, индекс которой соответствует имени этой переменной. Таким образом, манипулируя этими двумя массивами мы всегда в ячейках с одним и тем же индексом будем иметь пару "имя переменной - значение переменной".

Согласитесь, что это геморрой и можно решать задачи куда проще.

P.S.

Если Вам проще С++, то почему бы весь код советника ни загнать в DLL?

 
drknn:

Объявляем 2 массива одинаковой размерности - один типа string, другой типа double ...

Если переменные только double- 2 массива без вопросов. В общем случае, делается несколько массивов.
Если нужно использовать С++ - нужно использовать С++. А это так не всегда.
drknn:

Рецепт есть, но повторяю - это "одевание штанов через голову".

Дык человек хочет. По-другому-никак.
 
jartmailru:
Дык человек хочет. По-другому-никак.
Ну что же, перо ему для скорости, чтоб на поворотах не заносило :)
 
drknn:
Ну что же, перо ему для скорости, чтоб на поворотах не заносило :)
:-)
 
Что-то вопрошающий притих, видимо понял что херню спросил )
Причина обращения: