Работа со строковыми функциями

Стартовая страница Форумы Понять, как работает ПО Работа со строковыми функциями

Помечено: 

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Записи
  • #31879
    Romiros
    Участник

    Добрый день. Создал функцию, которая превращает разницу во времени (TimeSpan) в строку вида «5 д 12 ч 33 мин 20 с». Создал расчетный канал с типом Unicode string и длиной данных 5. Как мне теперь записать полученную строку в этот канал. Похоже нужно использовать функцию из справочника SplitUnicode(getStringFunc). Если так, то можно пример, как ей правильно пользоваться?

    Для простоты вот такая функция:
    public string TimeSpanString(int cnlNum)
    {
    return «5 д 12 ч 33 мин 20 с»;
    }
    Как её результат отправить в SplitUnicode ? Или вообще не такой подход должен быть?

    #31880
    Romiros
    Участник

    Задал вопрос и сам отвечаю 🙂

    SplitUnicode(() => TimeSpanString(251))

    может кому пригодится.

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

    Добрый день!

    Если бы вопрос был по типу DateTime, я бы посоветовал задать формат в таблице Форматы без использования строкового типа и какой-либо дополнительной формулы. Для TimeSpan, который содержит не только время, но ещё и дни, этот простой способ, к сожалению, не сработает. Из простых вариантов — показать значение в виде количества часов или минут (число). Секунды тут, вероятно, не так важны. Если нужен вывод именно в виде «5 д 12 ч 33 мин 20 с», то только строка, похоже.

    Чтобы решить этот вопрос на уровне скады, потребуется изменить базу конфигурации, добавив таблицу Типы форматов и в таблице Форматы поле Тип формата (вместо галочек). Тогда можно было бы реализовать больше разных типов форматов. Но это на будущее, т.к. менять структуру базы сейчас совсем не своевременно.

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