powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Набор функций для работы со строками (примеры)
8 сообщений из 8, страница 1 из 1
Набор функций для работы со строками (примеры)
    #39886191
iKaRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База содержит примеры работы с функциями модуля modStrings для работы со строками:
1. Расстановка переносов в поле
пример демонстрирует расстановку переносов в тексте. текст разбивается на строки по границам поля.
2. Расстановка переносов с распределением по полям
аналогичен предыдущему, но вместо разбиения на строки в поле текст разбивается на массив подстрок по размерам полей в которых его надо распределить
3. Склонение слов по падежам
пример демонстрирует склонение пар "подлежащее - определение" и ФИО.
используемая функция не делает разбор предложения, не анализирует семантику и не занимается согласованием слов в фразе, также - никак не различает одушевленные/неодушевленные просто бьёт строку на куски по набору разделителей и склоняет каждое слово, кроме указанных в списке пропуска, по набору правил/исключений заданных в функции.
на самом деле этого вполне достаточно в 90% случаев.
4. Преобразование числа в текст
пример демонстрирует преобразование числа в текст и склонение его по падежам с выводом при необходимости основной и вспомогательной единицы измерения.
допустимы целые числа, десятичные дроби (не в экспоненциальном виде), и натуральные дроби.
5. Сравнение слов
сравнение осуществляется при помощи функций фонетического кодирования: PolyPhone, MetaPhone, Soundex и функций определения фонетического расстояния: наибольшая общая подпоследовательность, расстояние Левенштейна, расстояние Дамерау-Левенштейна, cходство Дайса, сходство Джаро-Винклера
6. Преобразование альфа символов.
пример демонстрирует преобразование строки в последовательность символов, заменяя недопустимые символы кодами в одном из 3-х реализованных форматов: cp1251, UTF-8, URL код.
7. Работа со строками с разделителями
пример демонстрирует работу со строками с разделителями (в т.ч. со множественными разделителями) и со строками именных параметров.
в VBA есть замечательные функции Split/Join, но иногда их немножко не хватает.

Скрин:


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

Ссылка на загрузку с rusimport: Strings.7z
...
Рейтинг: 0 / 0
Набор функций для работы со строками (примеры)
    #39916577
iKaRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переписал алгоритм функции работы с именными подстановочными переменными ReplaceNamedPlaceHolders на более адекватный - добавлена возможность передавать в качестве параметров выражения переменных. вычисляются рекурсивно.

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

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









Отдельно модуль modStrings.bas (см.вложение):
...
Рейтинг: 0 / 0
Набор функций для работы со строками (примеры)
    #39916679
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iKaRus, Супер!
...
Рейтинг: 0 / 0
Набор функций для работы со строками (примеры)
    #39920652
iKaRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Небольшие изменения в модуле:
+ в функции ReplaceNamedPlaceHolders добавлена возможность использовать внутри скобок переменных модификаторы (см. p_TermModify), в частности для склонения и перевода числа в текст и внесены соотв изменения в пример.
- исправлена глупая ошибка в TaggedStringGet в редких случаях приводившая к невозможности определения тэга в строке (если имя первого тэга строки меньше имени искомого)
- незначительные исправления в функции DeclineWord (изменено склонение сущ во мн.ч. оканчивающихся на согласную)

файл на rusimport'е заменён.
...
Рейтинг: 0 / 0
Набор функций для работы со строками (примеры)
    #39990719
i_bison
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iKaRus,

весчь.

Спасибо.
...
Рейтинг: 0 / 0
Набор функций для работы со строками (примеры)
    #39994111
uum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
uum
Гость
iKaRus
Выкладываю как есть - может кому-то что из этого покажется интересным.
Замечания приветствуются.
Public Function HyphenateWord для расстановки переносов - не очень уж чтобы.
Предлагаю несколько улучшить, особенно для корректных расстановок в словах с "й":
Код: vbnet
1.
2.
3.
4.
5.
Const cstrTemp = "sgsggg sgisss ggsggsg ssgsssgs sgsxgs sgsssg sgisg sgigs sggsg igsgs gsssg sgsxg sgsgi sgsg sggs sggg gssssg gssg gsgss gsgi xss xsg xgs xgg ssxg"
...
Dim sPos: sPos = Array(5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1)
...
If InStr(sArr(j), m) Then Mid$(Text, i, 1) = Mid$("xgsi", j + 1, 1): Exit For
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Набор функций для работы со строками (примеры)
    #40138505
iKaRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновил
https://mega.nz/file/hZZzCAwA#LEUZD-HvJqhcnlAZqoZ1AXfDy_ZCwJoK_NShu9LWo3k

База содержит примеры работы с функциями модуля modStrings для работы со строками:
Картинка
1. Расстановка переносов в поле
пример демонстрирует расстановку переносов в тексте. текст разбивается на строки по границам поля.
Картинка
2. Расстановка переносов с распределением по полям
аналогичен предыдущему, но вместо разбиения на строки в поле текст разбивается на массив подстрок по размерам полей в которых его надо распределить
Картинка
3. Склонение слов по падежам
пример демонстрирует склонение пар "подлежащее - определение" и ФИО.
используемая функция не делает разбор предложения, не анализирует семантику и не занимается согласованием слов в фразе, также - никак не различает одушевленные/неодушевленные просто бьёт строку на куски по набору разделителей и склоняет каждое слово, кроме указанных в списке пропуска, по набору правил/исключений заданных в функции.
на самом деле этого вполне достаточно в 90% случаев.
Картинка
4. Преобразование числа в текст
пример демонстрирует преобразование числа в текст и склонение его по падежам с выводом при необходимости основной и вспомогательной единицы измерения.
допустимы целые числа, десятичные дроби (не в экспоненциальном виде), и натуральные дроби.
Картинка
5. Сравнение слов
сравнение осуществляется при помощи функций фонетического кодирования: PolyPhone, MetaPhone, Soundex и функций определения фонетического расстояния: наибольшая общая подпоследовательность, расстояние Левенштейна, расстояние Дамерау-Левенштейна, cходство Дайса, сходство Джаро-Винклера
Картинка
6. Преобразование альфа символов.
пример демонстрирует преобразование строки в последовательность символов, заменяя недопустимые символы кодами в одном из 3-х реализованных форматов: cp1251, UTF-8, URL код.
Картинка
7. Работа со строками с разделителями
пример демонстрирует работу со строками с разделителями (в т.ч. со множественными разделителями) и со строками именных параметров.
в VBA есть замечательные функции Split/Join, но иногда их немножко не хватает.
Картинка
8. Работа с подстановочными переменными
пример демонстрирует работу с выражениями содержащими подстановочные переменные типа [%Param1%]. Подменяет именные переменные в выражении значениями. Набор значений передается в виде набора пар Param1=Value1. в качестве значения параметра м.б. передано значение, либо выражение состоящее из параметров описанных в наборе и допустимых операций.
Картинка
9. Разбор скобок
пример демонстрирует работу с выражениями содержащими разнотипные скобки (в т.ч.вложенные и многозвенные).
Картинка
...
Рейтинг: 1 / 0
Нравится: Панург
Набор функций для работы со строками (примеры)
    #40138510
iKaRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не постить новые ссылки на каждое изменение
перевыложил на Git: https://github.com/iKaRus-VLZ/Strings
...
Рейтинг: 1 / 0
Нравится: Панург
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Набор функций для работы со строками (примеры)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]