Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
38 / 38 / 16
Регистрация: 14.03.2012
Сообщений: 168
1

Преобразование символом в символы другой раскладки

25.03.2014, 20:03. Показов 1211. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
(Преобразование символоВ в символы другой раскладки)
Есть переменная. В ней например символ "b". Как его превратить в "и". Или например "j" в "о". Вот это -
VB.NET
1
2
3
if a="b" then
a="и"
end if
Не предлагать
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2014, 20:03
Ответы с готовыми решениями:

Удалить символы, стоящие перед символом *
Удалить символы, стоящие перед символом *. Рассмотреть случай наличия в последовательности...

Преобразование выражение в формулу с символом суммирования (и/или произведения)
Всем добрый вечер! Вопрос такой. Если в результате вычислений получается что-нибудь типа...

Задан текст. Заменить все символы* символом
Помогите решить задачу. Задан текст. Заменить все символы* символом.

Заменить некоторые символы строки пустым символом
Здравствуйте, необходимо заменить некоторые символы строки пустым символом. Пробовал так: one='';,...

5
1302 / 508 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
25.03.2014, 20:06 2
Никита12345, инструкция select case устроит? Если нет - то почему?
0
38 / 38 / 16
Регистрация: 14.03.2012
Сообщений: 168
25.03.2014, 20:14  [ТС] 3
emenem97, Можно подробнее
0
1302 / 508 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
25.03.2014, 20:24 4
VB.NET
1
2
3
4
5
6
7
8
9
Select PEREMEN
Case b
PEREMEN = "и"
Case j
PEREMEN = "о"
Case v
PEREMEN = "m"
' и т.д. и т.п.
End Select
0
356 / 295 / 78
Регистрация: 02.10.2013
Сообщений: 476
Записей в блоге: 5
25.03.2014, 21:54 5
Лучший ответ Сообщение было отмечено Никита12345 как решение

Решение

VB.NET
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
Dim direction As Boolean
'Если его значение -- True, тогда перевод из русского в транслит, и наоборот
Private Function Translate(ByVal strFullString As String, ByVal direction As Boolean) As String
Dim i As Integer
Dim bRussian(35) As String
Dim bTrans(35) As String
Dim lTrans() As String = {"j", "c", "u", "k", "e", "n", "g", "sh", "sh", "z", "h", "'", "f", "y", "v", "a", "p", "r", "o", "l", "d", "zh", "e", "ja", "ch", "s", "m", "i", "t", "'", "b", "ju", "йа", "йу", "зх", "цх"}
Dim lRussian() As String = {"й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ь", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю", "я", "ю", "ж", "ч"}
If direction = True Then
      For i = 0 To 35
           bRussian.SetValue(lRussian(i).ToUpper.ToString, i)
           bTrans.SetValue(lTrans(i).ToUpper.ToString, i)
           strFullString = strFullString.Replace(lRussian(i).ToString, lTrans(i).ToString)
           strFullString = strFullString.Replace(bRussian(i).ToString, bTrans(i).ToString)
      Next
    Else
      For i = 0 To 35
        bRussian.SetValue(lRussian(i).ToUpper.ToString, i)
        bTrans.SetValue(lTrans(i).ToUpper.ToString, i)
        strFullString = strFullString.Replace(lTrans(i).ToString, lRussian(i).ToString)
        strFullString = strFullString.Replace(bTrans(i).ToString, bRussian(i).ToString)
      Next
    End If
    Return strFullString
End Function
Код не мой источник здесь http://kbyte.ru/ru/Programming... &mode=show
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
26.03.2014, 00:55 6
Мой вариант:
VB.NET
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
    Private Function createDict() As Dictionary(Of Char, Char)
        Dim chDi As New Dictionary(Of Char, Char)
        Dim ru() As Char = {"Ф", "И", "С", "В", "У", "А", "П", "Р", "Ш", "О", "Л", "Д", "Ь", "Т", "Щ", "З", "Й", "К", "Ы", "Е", "Г", "М", "Ц", "Ч", "Н", "Я"}
        For i = 65 To 90
            chDi.Add(ChrW(i), ru(i - 65))
        Next
        For i = 97 To 122
            chDi.Add(ChrW(i), Char.ToLower(ru(i - 97)))
        Next
        Return chDi
    End Function
    Public Function findKey(ByVal sm As Char, ByVal di As Dictionary(Of Char, Char)) As Char
        Dim ch As Char = ""
        If Char.IsLetter(sm) Then
            If AscW(sm) < 1000 Then
                If di.ContainsKey(sm) Then
                    ch = di.Item(sm)
                End If
            Else
                If di.ContainsValue(sm) Then
                    Dim fch = From d In di Where d.Value = sm
                    ch = fch(0).Key
                End If
            End If
        End If
        Return ch
    End Function
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim ddi As Dictionary(Of Char, Char) = createDict()
        Dim ss As Char = InputBox("Ввод")
        Dim s As Char = findKey(ss, ddi)
        MsgBox(s)
    End Sub
0
26.03.2014, 00:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2014, 00:55
Помогаю со студенческими работами здесь

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

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

Заменить все символы с кодами из диапазона 0-32 последним символом строки
1) Вводится строка. Заменить все символы с кодами из диапазона 0..32 последним символом строки. 2)...

Из предложения удалить все символы, совпадающие с символом, введенным с клавиатуры
Из предложения удалить все символы, совпадающие с символом, введенным с клавиатуры. (использовать...


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

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