новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Замена совпадающих по написанию букв Рус/Лат Лат/Рус

  • Добавить свою публикацию
  • для этого требуется регистрация

Предлагаемый вариант решения:

 

 Функция ЗаменитьСимволы(Что,Где,НаЧто) Экспорт
    Рез = Где;
    Для Сч = 1 По СтрДлина(Что) Цикл
        Рез = СтрЗаменить(Рез,Сред(Что,Сч,1),Сред(НаЧто,Сч,1));
    КонецЦикла;
    Возврат Рез;
КонецФункции

Функция Транслитерация(Слово, Направление)
   Rus = "АаВЕеКкМНОоРрСсТуХхЗО1тиа@пь";
   Eng = "AaBEeKkMHOoPpCcTyXx30imu@anb";
//Rus = "АаВЕеКкМНОоРрСсТуХхтипь"; // Если цифры в строке означают цифры //Eng = "AaBEeKkMHOoPpCcTyXxmunb"; // Если цифры в строке означают цифры Слово=ЗаменитьСимволы(?(Направление="Rus/Eng", Rus, Eng),Слово,?(Направление="Rus/Eng", Eng, Rus )); Возврат Слово; КонецФункции

 

Использование:

 

 

// Для приведения строки к латинским символам: 
СтрокаЛат = Транслитерация(СтрокаДляЗамены, "Rus/Eng");
// Для приведения строки к кириллическим символам:
СтрокаКириллица = Транслитерация(СтрокаДляЗамены, ""); 
// во втором передаваемом параметре любая строка не равная "Rus/Eng"

 

Использовать можно для сопоставления номеров оплаченных счётов например...

 

PS: Если строка для замены может содержать цифры а не только буквы, то желательно соответствия букв и цифр типа (Зэ-3три, 1-i) убрать... 

 
0
Еще от автора
≡ к списку статей