Сравнение строк с транслитерацией (с символами из разных алфавитов)


При разработке правил обмена или при поиске дублей возможен вариант, когда пользователь использовал одинаковые символы из русского и английского алфавита. Например  Н (эн) <> H (аш), Р(эр)<> P(пэ) и т.д.
В данной обработке реализовано сравнение строк с учетом такой криворукости пользователя.

Обработка содержит две функции

СравнитьСтрокиСТранслитерацией(Строка1,Строка2)   и    СравнитьСимволыСТранслитерацией(С1,С2)

Перед сравнением обе строки приводятся к верхнему регистру (на всякий случай), т.е. регистр не учитывается при сравнении.

В функции СравнитьСимволыСТранслитерацией(С1,С2) содержится ТЗ соответствий символов разных алфавитов, ее можно дополнить и другими символами, например "точка" и "запятая".

Функции лежат в модуле обработки. В форме реализован пример использования.

Доп: Добавил сравнение на "вхождение" одной строки в другую, тоже с учетом транслитерации.
В разных базах может быть разная длина кода, напрмер в одной базе код "АВС123456ААА", а в другой "АВС123456А". В этом случае обработка вернет "Вхождение" вместо "Истина или Ложь".
Проверяется по принципу Строка1Н = Лев(Строка1,СтрДлина(Строка2));
т.е. строки "АВС123456ААА",  "ААААВС123456" вернут ложь.... если надо, допишите сами, мне нужно было только такое условие.

Доп2: Предыдущая версия очень медленно обрабатывала большие объемы данных. Оптимизировал.
Таблица соответствия символов формируется отдельной функцией (т.е. вне цикла)
Убрал лишние циклы.

Файлы обработки:

-