Обратная транслитерация не работает (Щ -> SHH -> CHH)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ronja
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 24.08.2006 (Чт) 22:13

Обратная транслитерация не работает (Щ -> SHH -> CHH)

Сообщение Ronja » 03.10.2006 (Вт) 20:17

Здравствуйте, уважаемые!
У меня в макросе обратная транслитерация не работает. То есть из русской буквы Щ я получаю как и надо SHH:

Код: Выделить всё
Selection.Replace What:=ChrW(1065), Replacement:="SHH"


Но, вот, обратная процедура никак не делает Щ из SHH. Вот эта строка не работает:
Код: Выделить всё
Selection.Replace What:="SHH", Replacement:=ChrW(1065)


И вместо слова PLOSHHAD' получаю ПЛОСННАДЬ.
Я пробовал вместо "SHH" ставить "S" & "H" & "H", но результат один и тотже. Вот переменные для транслитерации:
Код: Выделить всё
    Selection.Replace What:="A", Replacement:=ChrW(1040)
    Selection.Replace What:="B", Replacement:=ChrW(1041)
    Selection.Replace What:="V", Replacement:=ChrW(1042)
    Selection.Replace What:="G", Replacement:=ChrW(1043)
    Selection.Replace What:="D", Replacement:=ChrW(1044)
    Selection.Replace What:="E", Replacement:=ChrW(1045)
    Selection.Replace What:="JO", Replacement:=ChrW(1025)
    Selection.Replace What:="ZH", Replacement:=ChrW(1046)
    Selection.Replace What:="Z", Replacement:=ChrW(1047)
    Selection.Replace What:="I", Replacement:=ChrW(1048)
    Selection.Replace What:="JJ", Replacement:=ChrW(1049)
    Selection.Replace What:="K", Replacement:=ChrW(1050)
    Selection.Replace What:="L", Replacement:=ChrW(1051)
    Selection.Replace What:="M", Replacement:=ChrW(1052)
    Selection.Replace What:="N", Replacement:=ChrW(1053)
    Selection.Replace What:="O", Replacement:=ChrW(1054)
    Selection.Replace What:="P", Replacement:=ChrW(1055)
    Selection.Replace What:="R", Replacement:=ChrW(1056)
    Selection.Replace What:="S", Replacement:=ChrW(1057)
    Selection.Replace What:="T", Replacement:=ChrW(1058)
    Selection.Replace What:="U", Replacement:=ChrW(1059)
    Selection.Replace What:="F", Replacement:=ChrW(1060)
    Selection.Replace What:="KH", Replacement:=ChrW(1061)
    Selection.Replace What:="C", Replacement:=ChrW(1062)
    Selection.Replace What:="CH", Replacement:=ChrW(1063)
    Selection.Replace What:="SH", Replacement:=ChrW(1064)
    Selection.Replace What:="SHH", Replacement:=ChrW(1065)
    Selection.Replace What:="''", Replacement:=ChrW(1066)
    Selection.Replace What:="Y", Replacement:=ChrW(1067)
    Selection.Replace What:="'", Replacement:=ChrW(1068)
    Selection.Replace What:="EH", Replacement:=ChrW(1069)
    Selection.Replace What:="JU", Replacement:=ChrW(1070)
    Selection.Replace What:="JA", Replacement:=ChrW(1071)

Не работают KH, CH,SH, SHH, EH, JU, JA. В то же время правильно транслитерируются ZH, JO, JJ.

Помогите кто владеет информацией, пожалста. А то у меня совсем нету познаний в синтаксисе.

Спасибо.
Лёня
Код: Выделить всё

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 03.10.2006 (Вт) 21:58

Суть в следующем. Правила транслитерации задают не только таблицу соответсвия, но и порядок обратной транслитерации.

см. ГОСТ 7.79-2000 (ИСО 9-95)

Таблица 5 определяет обратный переход от транслитерированного текста к исходному. Она предполагает замену на кирилловские буквы сначала трехсимвольных сочетаний, затем двухсимвольных и, наконец, одиночных букв


Т.е. строчки в коде нужно переставить.

Ronja
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 24.08.2006 (Чт) 22:13

Сообщение Ronja » 06.10.2006 (Пт) 6:59

Спасибо огромное!!!
Поставил, как советовали, строчки с тремя буквамы выше остальных - и всё заработало. Я очень рад!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 112

    TopList  
cron