Транслит

Программирование на Visual Basic for Applications
goddan
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 29.10.2007 (Пн) 1:59

Транслит

Сообщение goddan » 30.10.2007 (Вт) 3:39

Доброго времени суток.

Подскажите как можно средствами VBA сделать транслитерацию кирилицы на латиницу?

Или м.б. другими средствами можно?

Спасибо

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 30.10.2007 (Вт) 8:07

Создать два параллельных массива, один из букв кириллицы, другой из латинских аналогов. Далее искать в массиве символ (символы) и заменять на соответствующий элемент другого массива.

З.Ы. Несколько сумбурно, но идею думаю поймешь
Весь мир матрица, а мы в нем потоки байтов!

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 30.10.2007 (Вт) 10:35

Я когда-то именно так и делал. Плюс к тому что было сказано выше хочется добавить, обрати внимание на такие моменты, что не всегда латинской буквой можно описать русскую. Я говорю про "я" (ya) "ш" sh). у думаю разберешься.
Подпись проходит рефакторинг

goddan
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 29.10.2007 (Пн) 1:59

Сообщение goddan » 31.10.2007 (Ср) 0:37

идея понятна, спасибо.

goddan
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 29.10.2007 (Пн) 1:59

Сообщение goddan » 31.10.2007 (Ср) 2:58

Еще вопрос. Существует ли какойто способ определить тип символов в строке(т.е. строка из кириллицы или из латиницы)?

Спасибо.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.10.2007 (Ср) 8:31

Гм... естественно существует, проверить символы на принадлежность к диапазону. Неужто трудности возникли?
Весь мир матрица, а мы в нем потоки байтов!

goddan
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 29.10.2007 (Пн) 1:59

Сообщение goddan » 31.10.2007 (Ср) 10:22

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

Я понимаю что можно пройтись по массиву из символов и сравнить, просто думал м.б. есть какая готовая функция(по принципу - зачем изобретать велосипед)

Krasnaja Shapka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 26.10.2006 (Чт) 12:13
Откуда: Киев

Сообщение Krasnaja Shapka » 02.11.2007 (Пт) 13:02

ну а если латиница - и сделать транслит, ужели что-то изменится? :)
Если ясность вашего объяснения исключает ложное толкование, все равно кто-то поймет вас неправильно.

goddan
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 29.10.2007 (Пн) 1:59

Сообщение goddan » 03.11.2007 (Сб) 21:07

Krasnaja Shapka писал(а):ну а если латиница - и сделать транслит, ужели что-то изменится? :)


кроме того предполагалось делать условие - если кириллица - то в комбобоксе автоматом - ру, если латиница - англ и т.д...

Krasnaja Shapka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 26.10.2006 (Чт) 12:13
Откуда: Киев

Сообщение Krasnaja Shapka » 05.11.2007 (Пн) 11:24

ну а если есть и киррилица и латиница? :)) типа английские названия и т.д. тогда имхо надо учитывать количество русских и англ. букв...

по-моему, лишние напряги... :)
Если ясность вашего объяснения исключает ложное толкование, все равно кто-то поймет вас неправильно.

Pavel55
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 27.10.2006 (Пт) 20:11

Сообщение Pavel55 » 08.11.2007 (Чт) 13:40

Может эта тема чем-нибудь поможет http://forum.developing.ru/showthread.php?t=10467

goddan
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 29.10.2007 (Пн) 1:59

Сообщение goddan » 24.11.2007 (Сб) 1:01

Pavel55 писал(а):Может эта тема чем-нибудь поможет http://forum.developing.ru/showthread.php?t=10467


спасибо


Вернуться в VBA

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

Сейчас этот форум просматривают: Bing-бот и гости: 1

    TopList