Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 21

Тема: Обсуждение: библиотека OwenStringUtils

  1. #11

    По умолчанию

    Спасибо, я передала Вашу просьбу разработчикам

  2. #12

    По умолчанию

    стандартные строковые функции в codesys могут работать только с 255 символами. Сколько символов поддерживают функции этой библиотеки ?

  3. #13
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,797

    По умолчанию

    Цитата Сообщение от Владислав3095 Посмотреть сообщение
    стандартные строковые функции в codesys могут работать только с 255 символами. Сколько символов поддерживают функции этой библиотеки ?
    стандартное значение строки 80 символов, если указывать например STRING(255) то строка будет состоять из не более 255 символов, ради интереса может задать STRING(2048) и поместить туда примерно такое же количество символов, должно сработать. Поэтому если в функции стоит просто STRING строка будет не более 80 символов
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  4. #14

    По умолчанию

    Цитата Сообщение от Владислав3095 Посмотреть сообщение
    стандартные строковые функции в codesys могут работать только с 255 символами. Сколько символов поддерживают функции этой библиотеки ?
    Также 255, поскольку они построены на стандартных функциях.
    Вы можете описать ситуации, когда требуется работать со строками большей длины?

  5. #15

    По умолчанию

    Код:
    sTmp := OSU.DT_TO_STRING_FORMAT(TargetVars.stRtc.dtDateAndTime, '%t[yyyyMMdd-HHmmss]');
    В результате получаю:
    20200816-13120001
    20200816-13120002
    20200816-13120003
    20200816-13120004
    20200816-13120005
    20200816-13120006
    20200816-13120007
    20200816-13120008
    20200816-13120009
    20200816-131200010
    20200816-131200011
    ...
    20200816-131200058
    20200816-131200059
    20200816-13130000
    И как это согласуется со строкой форматирования "yyyyMMdd-HHmmss"?

    Если использовать строку форматирования "mm" или "ss", то результат адекватный, а если "mmss", то аналогично приведенному выше, между минутами и секундами вставляется лишних 2-3 нуля.

  6. #16

    По умолчанию

    И как это согласуется со строкой форматирования "yyyyMMdd-HHmmss"?
    Согласуется следующим образом:

    yyyyMMdd-HHmmss

    В использованном в функции алгоритме сначала выполняется подстановка миллисекунд, поэтому получается приведенный выше результат.

    В вашем случае, на мой взгляд, проще всего сделать так:

    Код:
    sTmp := OSU.DT_TO_STRING_FORMAT(TargetVars.stRtc.dtDateAndTime, '%t[yyyyMMdd-HHmm]');
    sTmp := CONCAT(sTmp, OSU.ADD_CHAR(TO_STRING(TargetVars.stRtc.usiGetSecond), 2, '0', FALSE));

  7. #17

    По умолчанию

    Не правильно согласуется, т.к. по правилам при разборе выражений всегда выбирается самая длинная лексема. И, если рассматривать разбор слева направо, это будет "mm", и тогда останется "ss". А у Вас получается, что сначала вычленили "m", потом вычленили "ms", потом вычленили "s".

    P.S. Я так и сделал, как Вы написали. Но ошибку все-таки надо исправлять.

  8. #18

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    стандартное значение строки 80 символов, если указывать например STRING(255) то строка будет состоять из не более 255 символов, ради интереса может задать STRING(2048) и поместить туда примерно такое же количество символов, должно сработать. Поэтому если в функции стоит просто STRING строка будет не более 80 символов
    Не будет работать с 2048 символами, только 255. Строковые функции в CoDeSys по причинам безопасности рантайма работают совсем не так, как обычные строковые в том же С.
    Тролль-наседка, добрый, нежный и ласковый

  9. #19
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    752

    По умолчанию

    Подскажите, так будет аналог функций CP1251_TO_UNICODE и UNICODE_TO_CP1251 для версии V2?

    Поясню где понадобилось.

    Из кассы получаю название фирмы в кодировке 1251. Это название передаю на панель weintek. А последняя воспринимает только unicode.

  10. #20

    По умолчанию

    Нет, не будет - версия V2.3 логично завершила свое развитие.
    Сами 3S уже год как официально прекратили выпуск каких-либо патчей (а реально обновлений функционала не было уже лет 7-8), поддержку и продажу рантайм тулкитов.

    Я удивлюсь, если у Weintek нету способов выводить строки в Win1251.
    Но даже если это и так - то есть примеры макросов для конвертации кодировок.

    В следующий раз рекомендую рассмотреть СП3xx - с ней бы таких проблем не возникло. )))

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Обсуждение макросов для OWEN Logic
    от Ревака Юрий в разделе Среда программирования OWEN Logic
    Ответов: 563
    Последнее сообщение: 01.11.2020, 14:54
  2. Обсуждение проекта "Умный Дом"
    от александр 64 в разделе СПК2хх
    Ответов: 100
    Последнее сообщение: 01.05.2017, 13:16
  3. обсуждение новостей от разработчиков
    от rovki в разделе Среда программирования OWEN Logic
    Ответов: 57
    Последнее сообщение: 18.10.2016, 21:46
  4. Про библиотеки
    от aven в разделе ПЛК1хх
    Ответов: 26
    Последнее сообщение: 22.04.2016, 00:19
  5. Обсуждение конкурентов
    от vladimir_prg в разделе Трёп (Курилка)
    Ответов: 2
    Последнее сообщение: 23.04.2013, 11:14

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •