|
|
|
Как реализовать транслитерацию текстового поля в 1С7.7 Ø |
☑ | ||
|---|---|---|---|---|
|
0
FatMan
27.09.05
✎
12:13
|
Собственно делал-ли кто-нибудь такое. Есть-ли dll для 1С, реализующих это?
|
|||
|
1
Uho
27.09.05
✎
12:14
|
а чего сложного то?
|
|||
|
2
FatMan
27.09.05
✎
12:21
|
Функция ЗаменитьНаТранслит(Им)
Имя = Им; Имя = СтрЗаменить(Имя,"а","a"); Имя = СтрЗаменить(Имя,"б","b"); Имя = СтрЗаменить(Имя,"в","v"); Имя = СтрЗаменить(Имя,"г","g"); Имя = СтрЗаменить(Имя,"д","d"); Имя = СтрЗаменить(Имя,"е","e"); Имя = СтрЗаменить(Имя,"ж","zh"); Имя = СтрЗаменить(Имя,"з","z"); Имя = СтрЗаменить(Имя,"и","i"); Имя = СтрЗаменить(Имя,"й","y"); Имя = СтрЗаменить(Имя,"к","k"); Имя = СтрЗаменить(Имя,"л","l"); Имя = СтрЗаменить(Имя,"м","m"); Имя = СтрЗаменить(Имя,"н","n"); Имя = СтрЗаменить(Имя,"о","o"); Имя = СтрЗаменить(Имя,"п","p"); Имя = СтрЗаменить(Имя,"р","r"); Имя = СтрЗаменить(Имя,"с","s"); Имя = СтрЗаменить(Имя,"т","t"); Имя = СтрЗаменить(Имя,"у","u"); Имя = СтрЗаменить(Имя,"ф","f"); Имя = СтрЗаменить(Имя,"х","h"); Имя = СтрЗаменить(Имя,"ц","z"); Имя = СтрЗаменить(Имя,"ч","ch"); Имя = СтрЗаменить(Имя,"ш","sh"); Имя = СтрЗаменить(Имя,"щ","sch"); Имя = СтрЗаменить(Имя,"ъ",""); Имя = СтрЗаменить(Имя,"ы","y"); Имя = СтрЗаменить(Имя,"ь",""); Имя = СтрЗаменить(Имя,"э","e"); Имя = СтрЗаменить(Имя,"ю","yu"); Имя = СтрЗаменить(Имя,"я","ya"); Имя = СтрЗаменить(Имя,"А","A"); Имя = СтрЗаменить(Имя,"Б","B"); Имя = СтрЗаменить(Имя,"В","V"); Имя = СтрЗаменить(Имя,"Г","G"); Имя = СтрЗаменить(Имя,"Д","D"); Имя = СтрЗаменить(Имя,"Е","E"); Имя = СтрЗаменить(Имя,"Ж","ZH"); Имя = СтрЗаменить(Имя,"З","Z"); Имя = СтрЗаменить(Имя,"И","I"); Имя = СтрЗаменить(Имя,"Й","Y"); Имя = СтрЗаменить(Имя,"К","K"); Имя = СтрЗаменить(Имя,"Л","L"); Имя = СтрЗаменить(Имя,"М","M"); Имя = СтрЗаменить(Имя,"Н","N"); Имя = СтрЗаменить(Имя,"О","O"); Имя = СтрЗаменить(Имя,"П","P"); Имя = СтрЗаменить(Имя,"Р","R"); Имя = СтрЗаменить(Имя,"С","S"); Имя = СтрЗаменить(Имя,"Т","T"); Имя = СтрЗаменить(Имя,"У","U"); Имя = СтрЗаменить(Имя,"Ф","F"); Имя = СтрЗаменить(Имя,"Х","H"); Имя = СтрЗаменить(Имя,"Ц","Z"); Имя = СтрЗаменить(Имя,"Ч","CH"); Имя = СтрЗаменить(Имя,"Ш","SH"); Имя = СтрЗаменить(Имя,"Щ","SCH"); Имя = СтрЗаменить(Имя,"Ъ",""); Имя = СтрЗаменить(Имя,"Ы","Y"); Имя = СтрЗаменить(Имя,"Ь",""); Имя = СтрЗаменить(Имя,"Э","E"); Имя = СтрЗаменить(Имя,"Ю","YU"); Имя = СтрЗаменить(Имя,"Я","YA"); Возврат Имя; КонецФункции Спасибо (1). Простимулировал к написанию этого кода. :) |
|||
|
3
Uho
27.09.05
✎
12:27
|
Сократить можно почти в два раза - зачем верхний и нижний регистр отдельно?
а можно вообще через две "строки с разделителями" |
|||
|
4
Uho
27.09.05
✎
12:37
|
Функция Транслит(буква)
стрРус="а б в г д е ё ж з и ..."; стрТранслит="a b v g d e yo zh z i ..."; Возврат СокрЛП(Сред(стрТранслит,Найти(стрРус,буква),3)); КонецФункции главное с пробелами не ошибиться |
|||
|
5
Mikeware
27.09.05
✎
15:23
|
А обратно? Не сочтите за лень. Тут уже немного посложнее...
Брал где-то, но оставил на стаорй работе |
|||
|
6
Uho
27.09.05
✎
15:37
|
(5) и обратно также, как в (4), добавь параметр в вызов функции (хотя можно и без параметра...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |