Мы разработали библиотеку OwenStringUtils, которая содержит наиболее востребованные функции для работы со строками.
Использовать библиотеку Вы можете в CODESYS 3.5 SP4 и выше.
1) Конвертация кодировок:
Часто при программировании в среде разработки CODESYS 3.5 приходится работать с кодировками символов (например: пользователь вводит текст сообщения с визуализации как WSTRING, а модем работает со строками STRING).
Функции CP1251_TO_UNICODE и UNICODE_TO_CP1251 решают эту проблему и позволяют конвертировать содержимое строк STRING в WSTRING и обратно.
В этой части библиотека OwenStringUtils полностью перекрывает функционал библиотеки ASCII_TO_UNICOD
2) Выделение части строки
Часто необходимо выделить часть строки (например: обработать команду, полученную по SMS).
Эта задача решается при помощи функций библиотеки Standard: Len, Find, Left, Mid, и Right, но код может получиться достаточно объемным:
Например, если по SMS получена команда Уставка=25.6
получить имя команды и значение на языке ST можно таким образом
На языке CFC, FBD и др. решение задачи будет гораздо более объемным и гораздо менее читабельным.
С использованием функций Before и After библиотеки OwenStringUtils количество кода (на ST) уменьшиться вдвое.
Для того, чтобы облегчить выделение средней части строки между 2мя известными подстроками мы добавили функцию Between.
Например: для того, чтобы определить текущий баланс на SIM-карте по SMS от оператора:
«Ваш баланс: 156,30 руб. Ваш Билайн» достаточно будет написать 1 строку в программе:
В дальнейшем мы будем дорабатывать библиотеку, добавляя в нее новые функции и функциональные блоки для того, чтобы упростить Вам написание программ.
Если есть идеи о том, какой функционал стоит добавить в эту библиотеку – смело пишите в теме для ОБСУЖДЕНИЯ.
P.S. В этой теме будут только обновления библиотеки, так что подписывайтесь на тему, чтобы быть в курсе обновлений.
Библиотека в шапке темы обновлена до версии 3.5.4.9.
Добавлены функции:
TIME_TO_STRING_FORMAT - для конвертации значения типа TIME в форматированную строку
AfterByNumber, WAfterByNumber - для вырезания подстроки после заданного по счету вхождения префикса
BeforeByNumber, WBeforeByNumber - для вырезания подстроки перед заданным по счету вхождением постфикса
BetweenByNumber, WBetweenByNumber - для вырезания подстроки между заданным по счету вхождением префикса/постфикса и ближайшим к нему значение постфикса/префикса
BetweenByNumber2, WBetweenByNumber2 - для вырезания подстроки между заданными по счету вхождениями префикса и постфикса
SplitStringByToken, WSplitStringByToken - для разделения строки на подстроки по заданному токену (например, это требуется при обработке файлов формата .csv)
GetCharType - для получения типа символа кодировки Win-1251 (символ кириллицы, символ латиницы, цифра, пробел и т. д.)
GetPathToDevice - для получения файлового заместителя для заданной директории
GetDateFromSerialNumber - для определения даты производства прибора ОВЕН по его серийному номеру