Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 31
1

Функция для транслита русского языка

16.06.2014, 10:36. Показов 1977. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте форумчане. Имеется два TextBox-а в 1м написана фраза на русском языке, как сделать, чтобы во 2м выводился транслит этой фразы?

Функция транслита вот:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Function Translit(ByVal txt As String) As String        ' с учётом регистра символов
   txtRussian$ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
    arrTranslit = Array("", "a", "b", "v", "g", "d", "e", "e", "zh", "z", "i", "y", "k", _
                        "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "tch", _
                        "sh", "sch", "", "y", "", "e", "yu", "ya")
    For iCount% = 1 To 33
        txt$ = Replace(txt$, Mid(txtRussian$, iCount%, 1), arrTranslit(iCount%), , , vbBinaryCompare)      ' строчные
       txt$ = Replace(txt$, UCase(Mid(txtRussian$, iCount%, 1)), UCase(arrTranslit(iCount%)), , , vbBinaryCompare)     ' прописные
   Next
    Translit$ = txt$
End Function
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2014, 10:36
Ответы с готовыми решениями:

strtolower для русского языка
strtolower превращяет все в маленькие буквы если английские символы а вот русские символы...

Включение русского языка в turbo C++ для windows 10
добрый день . Скачал turbo C++ для windows 10. установил. Не могу подключить русский язык.Так как...

функция транслита
изучаю php. пробовал сделать транслитератор на php. не то чтобы нужно, просто интересно было как...

Что нужно подключить для поддержки русского языка?
Што нужно подключить штоб в турбо паскале был русский язык.

8
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
16.06.2014, 10:57 2
Возможно
Visual Basic
1
TextBox2 = Translit(TextBox1)
если угадал с названиями
0
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 31
16.06.2014, 12:15  [ТС] 3
Hugo121, спасибо, но не то)
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
16.06.2014, 12:19 4
Лучший ответ Сообщение было отмечено Nlk как решение

Решение

И чем не то?
Отлично всё работает...
Visual Basic
1
2
3
Private Sub UserForm_Click()
    TextBox2 = Translit(TextBox1)
End Sub
1
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 31
16.06.2014, 12:21  [ТС] 5
Hugo121, я чё-то проверил, не робит, ты проверял?
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,140
Записей в блоге: 4
16.06.2014, 12:22 6
й / ы --на одну букву
ъ / ь --совсем выкинули

весьма спорно

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub mm140616()
Debug.Print Translit("абв гдеё ж зий клмн опрст уф х ц ч ш щ ъыь э ю я  объект мальчик")
'                     abv gdee zh ziy klmn oprst uf kh ts tch sh sch `y` e yu ya
 
End Sub
Function Translit(ByVal txt As String) As String
' с учётом регистра символов
Debug.Print txt
Dim txtRussian$, arrTranslit, iCount%, txt2
   txtRussian$ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
    arrTranslit = Array("", "a", "b", "v", "g", "d", "e", "e", "zh", "z", "i", "y", "k", _
                        "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "tch", _
                        "sh", "sch", "`", "y", "`", "e", "yu", "ya")
    txt2 = txt
    For iCount% = 1 To 33
       txt2 = Replace(txt2, Mid(txtRussian$, iCount%, 1), arrTranslit(iCount%), , , vbBinaryCompare)      ' строчные
       txt2 = Replace(txt2, UCase(Mid(txtRussian$, iCount%, 1)), UCase(arrTranslit(iCount%)), , , vbBinaryCompare)     ' прописные
   Next
    Translit$ = txt2
End Function
1
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 31
16.06.2014, 12:37  [ТС] 7
Hugo121, и как к стати вот эти переменные объявил?

Добавлено через 9 минут
Hugo121, точно, работает, спасибо) а можно сделать так, чтобы не тыкать по форме чтобы перевелось, а в авто режиме?

Добавлено через 3 минуты
Все разобрался, спасибо за быстрый ответ
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
16.06.2014, 13:01 8
Ну вот, а то не то...
Вообще нужно было сразу показать свои текстбоксы, и хотелку - заносить перевод в текстбокс можно по тысяче событий...
Да и текстбоксы могут быть разные...

А переменных тут никаких нет.

Добавлено через 4 минуты
Для текстбоксов листа работает аналогично:
Visual Basic
1
2
3
Sub tt()
TextBox2 = Translit(TextBox1)
End Sub
По какому событию выполнять код - тоже тысяча вариантов, к делу/вопросу не относится.
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
16.06.2014, 13:08 9
Цитата Сообщение от Nlk Посмотреть сообщение
чтобы не тыкать по форме
Вообще без форм — для Word-документа: Транслитерация. Сохранение форматирования текста.
0
16.06.2014, 13:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2014, 13:08
Помогаю со студенческими работами здесь

Как указать кодировку для чтения русского языка?
При открытии формы загружается файл с русским текстом, но вместо русских букв идут одинаковые...

Произвольное слово разбить для переноса по правилам русского языка
Помогите пожалуйста написать программу: Произвольное слово разбить для переноса по правилам...

Произвольное слово разбить для переноса по правилам русского языка
Помогите пожалуйста. Произвольное слово разбить для переноса по правилам русского языка. Ничего...

Что лучше использовать для распознования русского языка System.Speech или Microsoft.Speech?
Здравствуйте, у меня проблемы со speech recognition c# в Windows 7, что мне лучше использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru