Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Короче говоря, на каждом изменении значения польз. параметра, это значение нужно приводить к значению переменной из юниона и сразу сохранять в общем массиве байтов, который потом перевести в uint и записать в ресурс.
Пользовательский параметр у тебя должен быть внутри union структуры. Когда ты изменишь параметр, то изменится структура с одновременным изменением массива int
i[2] у тебя это пользовательский ресурс, который читает другая программа.
Одной строкой cc.width = 200 ты изменишь:
- Параметр, отвечающий за ширину,
- Структуру, cодержащую этот параметр,
- Массив ресурса, который читает сторонняя программа
И здесь нет ни одной конвертации и копирования, лишь отображение.Я могу изменить функции обертки в файле Connection Properties и сделать приведение каждого польз. значения к соответствующей переменной из юнион, и на ходу состовлять байтовый массив. Но, тектовые значения, которые тоже нужно передавать, переводить в массив байтов с помощью StringToChar().
Однако, при этом, лишается смысла использование юнион. Ведь если я все равно должен использовать StringToChar(), то почему бы не собрать все в строку, а потом всю строку перевести в байты с помощью StringToChar()?
Пользовательский параметр у тебя должен быть внутри union структуры. Когда ты изменишь параметр, то изменится структура с одновременным изменением массива int
i[2] у тебя это пользовательский ресурс, который читает другая программа.
Одной строкой cc.width = 200 ты изменишь:
- Параметр, отвечающий за ширину,
- Структуру, cодержащую этот параметр,
- Массив ресурса, который читает сторонняя программа
И здесь нет ни одной конвертации и копирования, лишь отображение.Василий, ты забываешь, что речь о двустороннем взаимодействии. У себя в движке, я могу все завязать на юнионах, но я не могу отвечать за код пользователя. Я могу только придумать обертки и поместить их в подключаемые файлы.
Где гарантия, что пользователь тоже будет использовать юнион? Значит, когда он вызывает мои функции-обертки, я сам должен брать его значение и приводить к одной из своих переменных из моего юнион внутри его подключаемого файла.
Я могу изменить функции обертки в файле Connection Properties и сделать приведение каждого польз. значения к соответствующей переменной из юнион, и на ходу состовлять байтовый массив. Но, тектовые значения, которые тоже нужно передавать, переводить в массив байтов с помощью StringToChar().
Однако, при этом, лишается смысла использование юнион. Ведь если я все равно должен использовать StringToChar(), то почему бы не собрать все в строку, а потом всю строку перевести в байты с помощью StringToChar()?
Потому что у тебя двойной парсинг будет. Ты сконвертируешь все в строку, это очень медленно. Потом разобъешь строку на массив - это очень быстро. Потом соберешь все снова с троку - это быстро. Потом распарсишь строку на нужные типы - это очень медленно.
Хорошо, но как быть с текстами?
Их нужно переводить в байты через StringToChar(). Ведь через юнион вроде нельзя?
Да, нужно переводить, но это быстро, в отличии от парсинга.
Например:
Вот функция обертки в подключаемом файле Connection Properties:
Эта функция вызывается так:
То есть, пользователь устанавливаем в ячейку таблицы значение Close[2].
Следовательно внутри своей функции обертки в его программе, я могу представить значение (Close[2]) как массив char.
Но, в эту же самую ячейку, пользователь может послать значение "Привет! :)", и как тогда быть?
Ох, Петр не с того языка программирования ты начал. Тебе нужно было что то не строго типизированное изучать.
А вообще я тебя понял, ты придумал свой нетипизированный ЯП на базе MQL. А его строгую типизацию ты обошел используя строки. Это маневр!
Ох, Петр не с того языка программирования ты начал. Тебе нужно было что то не строго типизированное изучать.
А вообще я тебя понял, ты придумал свой нетипизированный ЯП на базе MQL. А его строгую типизацию ты обошел используя строки. Это маневр!
Ага,)) Ход Конем!
Если ты используешь таблицу, ты должен определиться какие данные в ней ты отображаешь: строго числовые или текстовые. Если текстовые - то ты передаешь строки. Если вещественные, твоя функция должна иметь вид: