- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
Функция Транслит(Имя)
Рез = СокрЛП(Имя);
Рез = СтрЗаменить(Рез,"а","a");
Рез = СтрЗаменить(Рез,"б","b");
Рез = СтрЗаменить(Рез,"в","v");
Рез = СтрЗаменить(Рез,"г","g");
Рез = СтрЗаменить(Рез,"д","d");
Рез = СтрЗаменить(Рез,"е","e");
Рез = СтрЗаменить(Рез,"ё","jo");
Рез = СтрЗаменить(Рез,"ж","zh");
Рез = СтрЗаменить(Рез,"з","z");
Рез = СтрЗаменить(Рез,"и","i");
Рез = СтрЗаменить(Рез,"й","jj");
Рез = СтрЗаменить(Рез,"к","k");
Рез = СтрЗаменить(Рез,"л","l");
Рез = СтрЗаменить(Рез,"м","m");
Рез = СтрЗаменить(Рез,"н","n");
Рез = СтрЗаменить(Рез,"о","o");
Рез = СтрЗаменить(Рез,"п","p");
Рез = СтрЗаменить(Рез,"р","r");
Рез = СтрЗаменить(Рез,"с","s");
Рез = СтрЗаменить(Рез,"т","t");
Рез = СтрЗаменить(Рез,"у","u");
Рез = СтрЗаменить(Рез,"ф","f");
Рез = СтрЗаменить(Рез,"х","h");
Рез = СтрЗаменить(Рез,"ч","ch");
Рез = СтрЗаменить(Рез,"ш","sh");
Рез = СтрЗаменить(Рез,"щ","shh");
Рез = СтрЗаменить(Рез,"ъ","");
Рез = СтрЗаменить(Рез,"ь","");
Рез = СтрЗаменить(Рез,"э","eh");
Рез = СтрЗаменить(Рез,"ю","ju");
Рез = СтрЗаменить(Рез,"ц","c");
Рез = СтрЗаменить(Рез,"я","ja");
Рез = СтрЗаменить(Рез,"ы","i");
Рез = СтрЗаменить(Рез,"А","A");
Рез = СтрЗаменить(Рез,"Б","B");
Рез = СтрЗаменить(Рез,"В","V");
Рез = СтрЗаменить(Рез,"Г","G");
Рез = СтрЗаменить(Рез,"Д","D");
Рез = СтрЗаменить(Рез,"Е","E");
Рез = СтрЗаменить(Рез,"Ё","JO");
Рез = СтрЗаменить(Рез,"Ж","ZH");
Рез = СтрЗаменить(Рез,"З","Z");
Рез = СтрЗаменить(Рез,"И","I");
Рез = СтрЗаменить(Рез,"Й","JJ");
Рез = СтрЗаменить(Рез,"К","K");
Рез = СтрЗаменить(Рез,"Л","L");
Рез = СтрЗаменить(Рез,"М","M");
Рез = СтрЗаменить(Рез,"Н","N");
Рез = СтрЗаменить(Рез,"О","O");
Рез = СтрЗаменить(Рез,"П","P");
Рез = СтрЗаменить(Рез,"Р","R");
Рез = СтрЗаменить(Рез,"С","S");
Рез = СтрЗаменить(Рез,"Т","T");
Рез = СтрЗаменить(Рез,"У","U");
Рез = СтрЗаменить(Рез,"Ф","F");
Рез = СтрЗаменить(Рез,"Х","H");
Рез = СтрЗаменить(Рез,"Ч","CH");
Рез = СтрЗаменить(Рез,"Ш","SH");
Рез = СтрЗаменить(Рез,"Щ","SHH");
Рез = СтрЗаменить(Рез,"Ъ","");
Рез = СтрЗаменить(Рез,"Ь","");
Рез = СтрЗаменить(Рез,"Ы","");
Рез = СтрЗаменить(Рез,"Ц","C");
Рез = СтрЗаменить(Рез,"Э","EH");
Рез = СтрЗаменить(Рез,"Ю","JU");
Рез = СтрЗаменить(Рез,"Я","JA");
Возврат(Рез);
КонецФункции
Суровая транслитерация... Я плакалъ
guest 16.10.2012 10:04 # +3
bormand, забывший дома пароль
guest 16.10.2012 10:25 # +1
ех )))
Xtasy 16.10.2012 12:23 # 0
jerokee 16.10.2012 12:27 # 0
Steve_Brown 16.10.2012 16:27 # 0
И "Ц","C" почему-то не на месте.
Впрочем, для задачи (см. комментарий снизу) это, скорей всего, не особо важно, лишь бы примерно понятно было и имена уникальные. А имена, хех, могут быть и не уникальные: ЦХ == Ч.
Vasiliy 16.10.2012 17:53 # 0
Vasiliy 16.10.2012 13:38 # 0
jerokee 16.10.2012 13:48 # +3
1. Формируется имя файла на основании параметров "Наименование склада", "Наименование еще чего-то"
2. Полученное имя НЕ должно содержать русских символов (иначе некая софтина, обрабатывающие эти файлы не сможет их прочесть).
Поэтому "специалисту" было дано задание написать функцию транслитерации. Результат "на рукалицо"
Vasiliy 16.10.2012 16:22 # 0
anonimb84a2f6fd141 16.10.2012 16:24 # 0
eth0 16.10.2012 18:55 # 0
Нечто подобное было на PHP, и не раз. Что доказывает, что все идиоты думают одинаково.
> "Ъ",""
> "Ь",""
> "Ы",""
А вот это - не труЪ.
> "jo"
А вот это забавно.
guest 14.12.2012 07:48 # +1
<code>
//функция выполняет транслитерацию исходного текста на англ.язык
//
Функция ВыполнитьТранслитерацию(ИсходныйТекст) Экспорт
ТекстВозврата = "";
ДлинаИсходногоТекста = СтрДлина(ИсходныйТекст);
Для Сч = 1 По ДлинаИсходногоТекста Цикл
текСимвол = Сред(ИсходныйТекст, Сч, 1);
возврСимвол = ОпределитьСимволВозврата(текСимвол);
ТекстВозврата = ТекстВозврата + возврСимвол;
КонецЦикла;
Возврат ТекстВозврата;
КонецФункции
</code>
jerokee 14.12.2012 08:00 # +1
Замеры скорости не производили, но это и так очевидно.
guest 14.12.2012 07:49 # 0
<code>
Функция ОпределитьСимволВозврата(текСимвол)
возврСимвол = "";
//гласные
Если текСимвол = "а" Тогда
возврСимвол = "a";
ИначеЕсли текСимвол = "е" Тогда
возврСимвол = "e";
ИначеЕсли текСимвол = "ё" Тогда
возврСимвол = "yo";
ИначеЕсли текСимвол = "и" Тогда
возврСимвол = "i";
ИначеЕсли текСимвол = "о" Тогда
возврСимвол = "o";
ИначеЕсли текСимвол = "у" Тогда
возврСимвол = "u";
ИначеЕсли текСимвол = "э" Тогда
возврСимвол = "e";
ИначеЕсли текСимвол = "ю" Тогда
возврСимвол = "yu";
ИначеЕсли текСимвол = "я" Тогда
возврСимвол = "ya";
ИначеЕсли текСимвол = "ы" Тогда
возврСимвол = "y";
//согласные
ИначеЕсли текСимвол = "б" Тогда
возврСимвол = "b";
ИначеЕсли текСимвол = "в" Тогда
возврСимвол = "v";
ИначеЕсли текСимвол = "г" Тогда
возврСимвол = "g";
ИначеЕсли текСимвол = "д" Тогда
возврСимвол = "d";
ИначеЕсли текСимвол = "ж" Тогда
возврСимвол = "zh";
ИначеЕсли текСимвол = "з" Тогда
возврСимвол = "z";
ИначеЕсли текСимвол = "й" Тогда
возврСимвол = "j";
ИначеЕсли текСимвол = "к" Тогда
возврСимвол = "k";
ИначеЕсли текСимвол = "л" Тогда
возврСимвол = "l";
ИначеЕсли текСимвол = "м" Тогда
возврСимвол = "m";
ИначеЕсли текСимвол = "н" Тогда
возврСимвол = "n";
ИначеЕсли текСимвол = "п" Тогда
возврСимвол = "p";
ИначеЕсли текСимвол = "р" Тогда
возврСимвол = "r";
ИначеЕсли текСимвол = "с" Тогда
возврСимвол = "s";
ИначеЕсли текСимвол = "т" Тогда
возврСимвол = "t";
ИначеЕсли текСимвол = "ф" Тогда
возврСимвол = "f";
ИначеЕсли текСимвол = "х" Тогда
возврСимвол = "kh";
ИначеЕсли текСимвол = "ц" Тогда
возврСимвол = "ts";
ИначеЕсли текСимвол = "ч" Тогда
возврСимвол = "ch";
ИначеЕсли текСимвол = "ш" Тогда
возврСимвол = "sh";
ИначеЕсли текСимвол = "щ" Тогда
возврСимвол = "sh";
ИначеЕсли текСимвол = "ъ" Тогда
возврСимвол = "";
ИначеЕсли текСимвол = "ь" Тогда
возврСимвол = "";
КонецФункции
</code>
mrbus 17.12.2012 14:33 # 0
jerokee 17.12.2012 16:26 # 0