Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
46 / 8 / 1
Регистрация: 20.08.2010
Сообщений: 53

Перевод из кириллицы в транслит

10.07.2012, 12:40. Показов 6716. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто нить, подкиньте толковый пример перевода строки из кириллицы в транслит. Заранее благодарен...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.07.2012, 12:40
Ответы с готовыми решениями:

Замена кириллицы на транслит
Задача такая: В текстовое окно вводиться кириллица и автоматически переводит в транслит. Если была введена допустим ш то в транслите sh...

Перевод слова из кириллицы в транслит
нужна функция перевода слова из кириллицы в транслит

транслит с кириллицы на латиницу
Нужна прога для транслита с кириллицы на латиницу на питоне. То есть вводим определенное слово и после он должен вывести на латинице. Нашел...

10
Заблокирован
10.07.2012, 15:38
Тут на форуме кто-то уже писал пример перекодировки букв в последующие к примеру если стоит "А" тогда программа введет "Б". Там просто алфавит поменять на ENG. Поищи на страницах.
0
46 / 8 / 1
Регистрация: 20.08.2010
Сообщений: 53
10.07.2012, 17:04  [ТС]
Да нет... все это не то... Короче, как всегда.. сам спрашиваю, сам себе же и отвечаю..

Написал такой вот пример:

Кидаем на форму text1, text2, command1. далее вставляем вот этот код:

Visual Basic
1
2
3
4
5
6
7
8
9
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
Private Sub Command1_Click()
Dim c
Dim i
Dim flag
Dim j
Dim outchr
Dim outstr
 
Dim Rus As Variant
    Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _
    "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _
    "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _
    "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", _
    "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")
    
Dim Eng As Variant
    Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _
    "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _
    "sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _
    "E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _
    "S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA")
 
    For i = 1 To Len(Text1.Text)
        c = Mid(Text1.Text, i, 1)
              flag = 0
        For j = 0 To 65
            If Rus(j) = c Then
                outchr = Eng(j)
                flag = 1
                Exit For
            End If
        Next j
        If flag Then outstr = outstr & outchr Else outstr = outstr & c
    Next i
        
        Text2.Text = outstr
 
End Sub
Всем спасибо! Вопрос решён, тему можно закрывать!!
1
Заблокирован
10.07.2012, 17:07
Было это! Говорю же тебе.
0
46 / 8 / 1
Регистрация: 20.08.2010
Сообщений: 53
10.07.2012, 17:12  [ТС]
Цитата Сообщение от inv.DS Посмотреть сообщение
Было это! Говорю же тебе.
в интернете 100500 вариантов решений моего вопроса... но все такие убогие и кривые что жуть просто.. Все примеры которые я видел, этому и в подметки не годятся.. (лично моё мнение), а тебе спасибо за интерес, проявленный к моему вопросу )
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,905
10.07.2012, 22:16
TYM, держи примочку вместо 23-34 строки своего кода,
да и самомнения поубавь
Visual Basic
1
2
3
4
5
6
7
8
9
10
    For i = 1 To Len(Text1.Text)
        c = Mid(Text1.Text, i, 1)
        For j = 0 To 65
            If Rus(j) = c Then
                c = Eng(j)
                Exit For
            End If
        Next j
        outstr = outstr & c
    Next i
Кстати, вложенный For j = 0 To 65 цикл здесь тот ещё тормоз!
Букву Ё, а также разницу между строчными и заглавными буквами можно объехать стандартными операторами и функциями VBA
2
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
11.07.2012, 11:54
Еще вариант без тормозного второго цикла
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub Command1_Click()
Dim Eng
Eng = Array("A", "B", "V", "G", "D", "E", "ZH", "Z", "I", "J", "K", _
"L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "KH", "TS", "CH", _
"SH", "SCH", "''", "Y", "'", "E", "YU", "YA", _
"a", "b", "v", "g", "d", "e", "zh", "z", "i", "j", "k", "l", "m", _
"n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", "sh", _
"sch", "''", "y", "'", "e", "yu", "ya", "jo", "JO")
    
st_in = Text1.Text
st_out = ""
For i = 1 To Len(st_in)
    c = Asc(Mid(Text1.Text, i, 1))
    If c >= Asc("А") And c <= Asc("я") Then
        t = Eng(c - 192)
    ElseIf c = Asc("ё") Then
        t = Eng(64)
    ElseIf c = Asc("Ё") Then
        t = Eng(65)
    Else
        t = Chr(c)
    End If
    st_out = st_out & t
Next i
        
Text2.Text = st_out
End Sub
2
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,905
11.07.2012, 15:20
Цитата Сообщение от Апострофф Посмотреть сообщение
Кстати, вложенный For j = 0 To 65 цикл здесь тот ещё тормоз!
Цитата Сообщение от Linoge Посмотреть сообщение
Еще вариант без тормозного второго цикла
Ну я примерно это и имел ввиду...
Но написал бы чуть нагляднее и короче, хотя далеко не факт, что оптимальнее и быстрее?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub Command1_Click()
Dim Eng
Eng = Array("A", "B", "V", "G", "D", "E", "ZH", "Z", "I", "J", "K", _
"L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "KH", "TS", "CH", _
"SH", "SCH", "''", "Y", "'", "E", "YU", "YA", _
"a", "b", "v", "g", "d", "e", "zh", "z", "i", "j", "k", "l", "m", _
"n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", "sh", _
"sch", "''", "y", "'", "e", "yu", "ya") ', "jo", "JO")
    
st_in = Text1.Text
st_out = ""
For i = 1 To Len(st_in)
    c = Mid(Text1.Text, i, 1)
    Select Case c
    Case "А" To "я"
      c = Eng(Asc(c) - 192)
    Case "ё"
      c = "jo"
    Case "Ё"
      c = "JO"
    End Select
    st_out = st_out & c
Next i
        
Text2.Text = st_out
 
End Sub
1
46 / 8 / 1
Регистрация: 20.08.2010
Сообщений: 53
11.07.2012, 15:41  [ТС]
)) Во первых всем спасибо за участие в помощи мне )) Тогда следующий вопрос, чтобы не создавать новую ветку.. Была строка Ивано Иван Иванович (стало с помощью транслита Ivanov Ivan Ivanovich).. Теперь необходимо все это причесать и привести в такой вот вид - Ivanov_II... т.е. после фамилии вставить нижнее подчеркивание, имя и отчество обрезать по первую заглавную букву... Как обрезать имя и фамилию.. Хотяб намекните... я подхвачу сам ))
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,905
11.07.2012, 15:55
Сначала преобразуем исходную строку
Visual Basic
1
2
3
s="Иванов Иван Иванович"
a=split(s)
s=a(0) & "_" & left(a(1),1) & left(a(2),1)
далее по той же схеме...
1
 Аватар для KoGG
5645 / 1627 / 418
Регистрация: 23.12.2010
Сообщений: 2,446
Записей в блоге: 1
25.07.2012, 17:50
Лучший ответ Сообщение было отмечено как решение

Решение

Обратная процедура - из транслита в кириллицу:
Visual Basic
1
2
3
4
5
6
7
8
9
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
Private Sub CommandButton2_Click()
    Dim c$, outchr$, outstr$, strIn$
    Dim i%, j%, flag As Boolean
 
    Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _
    "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _
    "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _
    "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", _
    "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")
    
    Dim Eng As Variant
    Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _
    "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _
    "sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _
    "E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _
    "S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA")
 
    strIn = Text1.Text
    For i = 1 To Len(strIn)
        flag = False
        c = Mid(strIn, i, 3)
        For j = 26 To 58
            If Eng(j) = c Then
                outchr = Rus(j)
                flag = True
                i = i + 2
                Exit For
            End If
        Next j
        If Not flag Then
            c = Mid(strIn, i, 2)
            For j = 6 To 65
                If Eng(j) = c Then
                    outchr = Rus(j)
                    flag = True
                    i = i + 1
                    Exit For
                End If
            Next j
        End If
        If Not flag Then
            c = Mid(strIn, i, 1)
            For j = 0 To 65
                If Eng(j) = c Then
                    outchr = Rus(j)
                    flag = True
                    Exit For
                End If
            Next j
        End If
        If flag Then outstr = outstr & outchr Else outstr = outstr & c
    Next i
    Text2.Text = outstr
End Sub
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.07.2012, 17:50
Помогаю со студенческими работами здесь

Копипаст кириллицы, транслит и тэдэ...
Довелось мне на одном форуме порасспрашивать коллег про мои проблемы с копипастом кириллицы из одной IDE в обычные редакторы. Вместо...

Транслит (перекодировка с кириллицы на латиницу)
Ребята, здравствуйте, у меня задание: написать на языке ассемблер com-программу, чтобы перекодировать с кириллицы на латиницу по правилу...

Перевод текста в транслит
Проблема, а точнее задачка: Мне нужно сделать вот такую программку. Структура такова, Дано два TMemo и кнопка. Суть программы вводим в...

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

перевод русских букв в транслит
Задача: Перевести русские буквы в транслит, с ведением протокола.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru