Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Набор функций для работы со строками (примеры)  [new]
iKaRus
Member

Откуда:
Сообщений: 46
База содержит примеры работы с функциями модуля modStrings для работы со строками:
1. Расстановка переносов в поле
пример демонстрирует расстановку переносов в тексте. текст разбивается на строки по границам поля.
2. Расстановка переносов с распределением по полям
аналогичен предыдущему, но вместо разбиения на строки в поле текст разбивается на массив подстрок по размерам полей в которых его надо распределить
3. Склонение слов по падежам
пример демонстрирует склонение пар "подлежащее - определение" и ФИО.
используемая функция не делает разбор предложения, не анализирует семантику и не занимается согласованием слов в фразе, также - никак не различает одушевленные/неодушевленные просто бьёт строку на куски по набору разделителей и склоняет каждое слово, кроме указанных в списке пропуска, по набору правил/исключений заданных в функции.
на самом деле этого вполне достаточно в 90% случаев.
4. Преобразование числа в текст
пример демонстрирует преобразование числа в текст и склонение его по падежам с выводом при необходимости основной и вспомогательной единицы измерения.
допустимы целые числа, десятичные дроби (не в экспоненциальном виде), и натуральные дроби.
5. Сравнение слов
сравнение осуществляется при помощи функций фонетического кодирования: PolyPhone, MetaPhone, Soundex и функций определения фонетического расстояния: наибольшая общая подпоследовательность, расстояние Левенштейна, расстояние Дамерау-Левенштейна, cходство Дайса, сходство Джаро-Винклера
6. Преобразование альфа символов.
пример демонстрирует преобразование строки в последовательность символов, заменяя недопустимые символы кодами в одном из 3-х реализованных форматов: cp1251, UTF-8, URL код.
7. Работа со строками с разделителями
пример демонстрирует работу со строками с разделителями (в т.ч. со множественными разделителями) и со строками именных параметров.
в VBA есть замечательные функции Split/Join, но иногда их немножко не хватает.

Скрин: Картинка с другого сайта.

Выкладываю как есть - может кому-то что из этого покажется интересным.
Замечания приветствуются.

Ссылка на загрузку с rusimport: Strings.7z
7 ноя 19, 13:31    [22011473]     Ответить | Цитировать Сообщить модератору
 Re: Набор функций для работы со строками (примеры)  [new]
iKaRus
Member

Откуда:
Сообщений: 46
Переписал алгоритм функции работы с именными подстановочными переменными ReplaceNamedPlaceHolders на более адекватный - добавлена возможность передавать в качестве параметров выражения переменных. вычисляются рекурсивно.

Добавлен пример:
8. Работа с подстановочными выражениями
Пример демонстрирует работу с выражениями содержащими подстановочные переменные типа %Param1%.
В примере именные переменные в выражении заменяются соответствующими значениями. Набор значений передается в виде набора пар Param1=Value1. в качестве значения параметра м.б. передано значение, либо выражение, состоящее из параметров описанных в наборе и допустимых операций.

Файл на русимпорте заменён: Strings.7z
+ Скрины ко всем примерам:

Картинка с другого сайта.
Картинка с другого сайта.
Картинка с другого сайта.
Картинка с другого сайта.
Картинка с другого сайта.
Картинка с другого сайта.
Картинка с другого сайта.
Картинка с другого сайта.

Отдельно модуль modStrings.bas (см.вложение):

К сообщению приложен файл (modStrings.7z - 48Kb) cкачать
20 янв 20, 23:27    [22063378]     Ответить | Цитировать Сообщить модератору
 Re: Набор функций для работы со строками (примеры)  [new]
4d_monster
Member

Откуда: Москва
Сообщений: 1594
iKaRus, Супер!
21 янв 20, 10:22    [22063523]     Ответить | Цитировать Сообщить модератору
 Re: Набор функций для работы со строками (примеры)  [new]
iKaRus
Member

Откуда:
Сообщений: 46
Небольшие изменения в модуле:
+ в функции ReplaceNamedPlaceHolders добавлена возможность использовать внутри скобок переменных модификаторы (см. p_TermModify), в частности для склонения и перевода числа в текст и внесены соотв изменения в пример.
- исправлена глупая ошибка в TaggedStringGet в редких случаях приводившая к невозможности определения тэга в строке (если имя первого тэга строки меньше имени искомого)
- незначительные исправления в функции DeclineWord (изменено склонение сущ во мн.ч. оканчивающихся на согласную)

файл на rusimport'е заменён.
30 янв 20, 18:34    [22069794]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить