Число в текст

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Автор
    Сообщения
  • #21416
    artem_on
    Участник

    Здравствуйте!
    Для канала пишу в поле Формула:
    Cnl>0 ? «Зима» : «Лето»
    Ставлю галочку Использовать формулу.
    Ставлю тип: Текст Unicode.
    Формула компилируется сервером без ошибки, но на веб-странице в представлении вместо текста — пустое поле.

    #21417
    Romiros
    Участник

    Формула всегда возвращает double. Используйте формулу Cnl>0 ? 0 : 1.
    В справочниках в таблице «Размерности» создайте свою размерность с обозначением Зима;Лето. Каналу укажите данную размерность и Формат — Текст Перечисление

    #21418
    artem_on
    Участник

    Спасибо за ответ, а зачем тогда вообще существует формат «Текст Unicode»? Насколько я успел понять, читая ответы на похожие вопросы, в формуле все-таки можно получить 8 байт текста: 8 символов для ASCII и 4 символа для Unicode…

    #21419
    Romiros
    Участник

    Если четырех символов достаточно и есть такая необходимость , можно написать формулу декодирования, например, как реализовано в самой скаде:
    public static double EncodeUnicode(string s)
    {
    byte[] array = new byte[8];
    int charCount = Math.Min(4, s.Length);
    Encoding.Unicode.GetBytes(s, 0, charCount, array, 0);
    return BitConverter.ToDouble(array, 0);
    }

    Unicode можно ставить если сразу от драйвера приходит в закодированном формате. Я так использую при получении имени прибора или дата время

    #21420
    Mikhail
    Модератор

    > а зачем тогда вообще существует формат «Текст Unicode»?
    Для случаев, когда заранее неизвестен перечень возможных значений.
    В остальных случаях эффективнее использовать перечисления.

    #21421
    artem_on
    Участник

    @Romiros, О! Спасибо за готовую формулу.

    {
    byte[] array = new byte[8];

    }

    А утечки памяти тут не будет? Явно освобождать указатель на массив в конце функции не требуется? Или тут сборщик мусора сработает в этих ваших .NET?

    #21422
    Romiros
    Участник

    Это не моя формула, все Михаила. По идее сборщик сам всё сделает, но точнее Михаил скажет. Он выше написал, что эффективнее использовать заранее известный текст перечисления.
    А вообще проверяйте и если не трудно старайтесь отписываться о результатах, это потом многим помогает. Знаю по себе, каждый раз все приходится все делать практически заново. Быстро забывается. А так зашёл на форум и есть готовое решение.

    #21425
    Mikhail
    Модератор

    В C# сборка мусора происходит автоматически.

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Вы должны авторизироваться для ответа в этой теме.