PDA

Просмотр полной версии : Библиотека OwenStringUtils (релиз версии 3.5.4.9)



Осинский Алексей
23.01.2017, 14:48
Внимание! Общение в этой теме закрыто. Все обсуждения – в СООТВЕТСТВУЮЩЕЙ теме (http://www.owen.ru/forum/showthread.php?t=25980).

Мы разработали библиотеку 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 можно таким образом


28866

На языке CFC, FBD и др. решение задачи будет гораздо более объемным и гораздо менее читабельным.
С использованием функций Before и After библиотеки OwenStringUtils количество кода (на ST) уменьшиться вдвое.

28868

На CFC решение будет выглядеть не менее элегантно:

28869

Для того, чтобы облегчить выделение средней части строки между 2мя известными подстроками мы добавили функцию Between.

Например: для того, чтобы определить текущий баланс на SIM-карте по SMS от оператора:
«Ваш баланс: 156,30 руб. Ваш Билайн» достаточно будет написать 1 строку в программе:

28870

В дальнейшем мы будем дорабатывать библиотеку, добавляя в нее новые функции и функциональные блоки для того, чтобы упростить Вам написание программ.
Если есть идеи о том, какой функционал стоит добавить в эту библиотеку – смело пишите в теме для ОБСУЖДЕНИЯ (http://www.owen.ru/forum/showthread.php?t=25980).
P.S. В этой теме будут только обновления библиотеки, так что подписывайтесь на тему, чтобы быть в курсе обновлений.

Скачать последнюю версию:


OwenStringUtils_v3.5.4.9.compiled-library (https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenStringUtils_v3.5.4.9.compiled-library)




Версия
Дата
Список изменений


3.5.4.9
10.05.2022


[*=left]Добавлена функция для конвертации значения типа TIME в форматированную строку (TIME_TO_STRING_FORMAT)
[*=left]Добавлены функции для парсинга строк (AfterByNumber, WAfterByNumber, BeforeByNumber, WBeforeByNumber, BetweenByNumber2, WBetweenByNumber2, SplitStringByToken, WSplitStringByToken)
[*=left] Добавлены дополнительные функции (GetCharType, GetPathToDevice, GetDateFromSerialNumber)




3.5.4.8
21.07.2020


[*=left]Добавлены функции для преобразования IP и MAC (BYTES_TO_IPSTRING, UDINT_TO_IPSTRING, IPSTRING_TO_BYTES,
IPSTRING_TO_UDINT, MAC_TO_STRING)
[*=left]Добавлены функции для преобразования для HEX-строк (HEX_STR_TO_WORD, WORD_TO_HEX_STR)
[*=left]Добавлены функции конкатенации строк с увеличенным числом входов (CONCAT4, WCONCAT4, CONCAT8, WCONCAT8)
[*=left]Добавлены функции дополнения строк (ADD_CHAR, WADD_CHAR)
[*=left]Исправлена ошибка в функции преобразования регистров WLowerCase, WUpperCase - ранее символы "q"/"Q" не преобразовывались




3.5.4.7
16.08.2018


Добавлены функции REAL_TO_STRING_FORMAT, LREAL_TO_STRING_FORMAT;
Добавлены функции поиска позиции подстроки начиная с позиции N FindSubstringPosAfterN и WFindSubstringPosAfterN (аналог FINDP библиотеки OSCAT BASIC);
Добавлены функции замены первого вхождения подстроки в строку ReplaceSubstring и WReplaceSubstring;
Добавлены функции замены всех вхождений подстроки в строку ReplaceAllSubstrings и WReplaceAllSubstrings (аналог REPLACE_ALL библиотеки OSCAT BASIC);
Добавлены функции форматирования даты и времени TOD_TO_STRING_FORMAT, DATE_TO_STRING_FORMAT, DT_TO_STRING_FORMAT;
Устранена ошибка в Between, WBetween из-за которой функции работали некорректно, если sAfter находился перед sBefore.




3.5.4.2
23.06.2017


Добавлены функции UpperCase, LowerCase, WUpperCase, WLowerCase
Устранил ошибку при которой символ CP1251 с кодом 16#98 некорректно преобразовывался в UNICODE. Теперь преобразовывается в символ 16#FFFD




3.5.4.1
23.01.2017
Первая версия библиотеки







Документация



Руководство пользователя (https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_OwenStringUtils_v3.0.pdf)

Осинский Алексей
04.08.2017, 16:13
Библиотека в шапке темы обновлена до версии 3.5.4.2.
Список изменений:

Добавлены функции UpperCase, LowerCase, WUpperCase, WLowerCase
Устранил ошибку при которой символ CP1251 с кодом 16#98 некорректно преобразовывался в UNICODE. Теперь преобразовывается в символ 16#FFFD

Осинский Алексей
01.10.2018, 10:32
Библиотека в шапке темы обновлена до версии 3.5.4.7.
Список изменений:

Добавлены функции REAL_TO_STRING_FORMAT, LREAL_TO_STRING_FORMAT;
Добавлены функции поиска позиции подстроки начиная с позиции N FindSubstringPosAfterN и WFindSubstringPosAfterN (аналог FINDP библиотеки OSCAT BASIC);
Добавлены функции замены первого вхождения подстроки в строку ReplaceSubstring и WReplaceSubstring;
Добавлены функции замены всех вхождений подстроки в строку ReplaceAllSubstrings и WReplaceAllSubstrings (аналог REPLACE_ALL библиотеки OSCAT BASIC);
Добавлены функции форматирования даты и времени TOD_TO_STRING_FORMAT, DATE_TO_STRING_FORMAT, DT_TO_STRING_FORMAT;
Устранена ошибка в Between, WBetween из-за которой функции работали некорректно, если sAfter находился перед sBefore

Евгений Кислов
21.07.2020, 10:02
Библиотека в шапке темы обновлена до версии 3.5.4.8.
Список изменений:

Добавлены функции для преобразования IP и MAC (BYTES_TO_IPSTRING, UDINT_TO_IPSTRING, IPSTRING_TO_BYTES,
IPSTRING_TO_UDINT, MAC_TO_STRING)
Добавлены функции для работы с HEX-строками (HEX_STR_TO_WORD, WORD_TO_HEX_STR)
Добавлены функции конкатенации строк с увеличенным числом входов (CONCAT4, WCONCAT4, CONCAT8, WCONCAT8)
Добавлены функции дополнения строк (ADD_CHAR, WADD_CHAR)
Исправлена ошибка в функции преобразования регистров WLowerCase, WUpperCase - ранее символы "q"/"Q" не преобразовывались

Евгений Кислов
10.05.2023, 11:40
Библиотека в шапке темы обновлена до версии 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 - для определения даты производства прибора ОВЕН по его серийному номеру