1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Библиотечный тип данных "перечисление"

Модератор: Глоб.модераторы

Ответить

Автор темы
zhenur
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 06 мар 2024, 08:32
Имя: Евгений
Страна: Россия
город/регион: Киров

Библиотечный тип данных "перечисление"

Сообщение zhenur »

Добрый день.

Столкнулся с такой проблемой, что необходимо конвертировать INT параметр в символ (в зависимости от числа 39 вариантов), среди которых есть пробел и точка, но МастерСкада не разрешает называть дочерние элементы перечисления " " и "."
Необходимо, чтобы при приходящем 0 в параметр отправлялся пробел, а при 37 отправлялась точка. Если сделать такие имена, то при компиляции выдается ошибка "Неуникальные названия элементов перечисления".
Если просто игнорировать 0 и 37, то они напрямую отправляются в параметр без преобразования или игнорирования

Есть ли вариант как-то вывести пробел и точку, или игнорировать 0 и 37?
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 18758
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 973 раза
Поблагодарили: 1854 раза

Библиотечный тип данных "перечисление"

Сообщение Jackson »

Ответ "от балды". Создать скрипт, который с помощью switch-case или if-then сопоставит значения CHAR значениям INT и заполнить ими массив, где индекс = значению INT. Затем к этому массиву обращаться.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
zhenur
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 06 мар 2024, 08:32
Имя: Евгений
Страна: Россия
город/регион: Киров

Библиотечный тип данных "перечисление"

Сообщение zhenur »

Jackson писал(а): 17 сен 2024, 16:41 Ответ "от балды". Создать скрипт, который с помощью switch-case или if-then сопоставит значения CHAR значениям INT и заполнить ими массив, где индекс = значению INT. Затем к этому массиву обращаться.
Про case напрочь забыл, он даже лучше наверное будет. Оформлю как библиотечный элемент и буду вставлять везде, спасибо
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 18758
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 973 раза
Поблагодарили: 1854 раза

Библиотечный тип данных "перечисление"

Сообщение Jackson »

zhenur писал(а): 17 сен 2024, 16:45 Про case напрочь забыл, он даже лучше наверное будет.
Сам так делаю там, где есть непрямое сопоставление или сложное преобразование данных. Скрипт порой написать банально быстрее, если в вычислительных мощностях он не стесняет. Только внимательнее: не знаю как в мастер-скаде, а некоторый софт критичен к типу данных, используемых в качестве индекса массива - вместо INT может попросить SHORT. По факту увидите.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 18758
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 973 раза
Поблагодарили: 1854 раза

Библиотечный тип данных "перечисление"

Сообщение Jackson »

Точнее заполнить массив можно хоть вручную явно (38 строк всего написать), а обращаться к нему потом с помощью CASE SELECT или IF-THEN.
По вопросам работы Форума можно обратиться по этим контактам.
Ответить

Вернуться в «MasterScada»