Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
1 / 1 / 0
Регистрация: 22.04.2014
Сообщений: 70

Поиск русских символов в строке

13.05.2014, 11:55. Показов 8331. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как искать русские символы в строке?

Т.е. скажем есть ТextBox в него вводиться рандомная строка, которая может содержать и кирилицу и латиницу и цифры.
И как в этом безобразии определить является ли та или иная буква русской или бусурманской?

Пробовать через ASCI кодировку?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2014, 11:55
Ответы с готовыми решениями:

Неверная кодировка русских символов
Решил освоить кроме vb.net этот язык, но наткнулся на проблему. В коде не могу писать на русском языке. В итоге выводится в неверной...

Оператор LIKE не чувствительным к регистру русских символов
Работаю в VB6,как в SQL запросе сделать оператор LIKE не чувствительным к регистру русских символов. Подключаю DBase через Data Controle. ...

Программа для конвертации русских символов в UTF-8
Здравствуйте! А есть у кого прога, которая конвертирует обыкновенные русские символы в кодировку UT-8?

20
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.05.2014, 12:21
Тебе нужно понять одну вещь. В стандартных контролах строки хранятся в ANSI кодировке (например кириллица - 1251), и тогда нужно смотреть кодовую страницу. Иначе - строки сами по себе хранятся в юникоде, можешь проверять каждый символ с диапазоном (&H410 - &H44F, &H401, &H451) по типу
Visual Basic
1
2
3
4
Select Case X
Case "А" To "я", "Ё", "ё"
    ' кириллица
End Select
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
13.05.2014, 12:22
Лучший ответ Сообщение было отмечено didimozg как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub qqq()
Dim s$, i As Long, c$
s = "sfghd3456аро"
For i = 1 To Len(s)
  c = Mid$(s, i, 1)
  If c Like "[A-Za-z]" Then
    MsgBox c & " - бусурманская"
  ElseIf c Like "[А-Яа-яЁё]" Then
    MsgBox c & " - нашенская"
  Else
    MsgBox c & " - ни то, ни сё"
  End If
Next i
End Sub
2
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
13.05.2014, 12:30
Цитата Сообщение от Апострофф Посмотреть сообщение
ОТЗЫВЫ И СПАСИБКИ НЕ ПЬЮ - АЛЛЕРГИЯ.
ха-ха..

Добавлено через 3 минуты
Лучше без назойливых выводов сообщений ...

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Form_Activate()
Dim s$, i As Long, c$
s = "sfghd3456аро"
For i = 1 To Len(s)
  c = Mid$(s, i, 1)
  If c Like "[A-Za-z]" Then
    Print c & " - бусурманская"
  ElseIf c Like "[А-Яа-яЁё]" Then
    Print c & " - нашенская"
  Else
    Print c & " - ни то, ни сё"
  End If
Next i
End Sub
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.05.2014, 12:31
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
Лучше без назойливых выводов сообщений
Ага, а лучше без лайков вообще.
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
13.05.2014, 12:35
Цитата Сообщение от The trick Посмотреть сообщение
Ага, а лучше без лайков вообще.
согласен .. медаль надо давать, и георгиевскую ленточку ...
0
13.05.2014, 12:37

Не по теме:

Цитата Сообщение от FelixMacintosh Посмотреть сообщение
согласен .. медаль надо давать, и георгиевскую ленточку ...
Я имел ввиду оператор Like

0
13.05.2014, 12:39

Не по теме:

:D Кто о чем а вшивый про баню...

0
1 / 1 / 0
Регистрация: 22.04.2014
Сообщений: 70
13.05.2014, 13:31  [ТС]
Не флудите люди добрые)))

Спасибо за ответы
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
13.05.2014, 21:44
Гы

Bash
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
55
56
57
Sub main()
    Dim i&, n&, t!
    
    t = Timer
    For n = 1 To 10000
        For i = 32 To 255
            isKyr0 Chr$(i)
        Next
    Next
    Debug.Print "Dragokas1: " & Timer - t
    
    t = Timer
    For n = 1 To 10000
        For i = 32 To 255
            isKyr Chr$(i)
        Next
    Next
    Debug.Print "Dragokas2: " & Timer - t
    
    t = Timer
    For n = 1 To 10000
        For i = 32 To 255
            isKyr2 Chr$(i)
        Next
    Next
    Debug.Print "The Trick: " & Timer - t
    
    t = Timer
    For n = 1 To 10000
        For i = 32 To 255
            isKyr3 Chr$(i)
        Next
    Next
    Debug.Print "Апострофф: " & Timer - t
    
End Sub
 
Function isKyr0(s$) As Boolean
    isKyr0 = (s >= "А" And s <= "я") Or s = "ё" Or s = "Ё"
End Function
 
Function isKyr(s$) As Boolean
    isKyr = (s >= "А" And s <= "я")
    If isKyr Then Exit Function
    isKyr = s = "ё" Or s = "Ё"
End Function
 
Function isKyr2(s$) As Boolean
    Select Case X
    Case "А" To "я", "Ё", "ё"
        isKyr2 = True
    End Select
End Function
 
Function isKyr3(s$) As Boolean
    isKyr3 = s Like "[А-Яа-яЁё]"
End Function
Dragokas1: 0,640625
Dragokas2: 0,59375
The Trick: 0,625
Апострофф: 0,3515625
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
13.05.2014, 21:52
а я там есть ?...
0
13.05.2014, 21:54

Не по теме:

FelixMacintosh, дык, я твоего варианта не увидел. Придумай что-то уникальное, если хочешь поиграть в старые игры. Мы так раньше часто прикалывались в разделе VBA.

0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.05.2014, 21:56
Dragokas, тест неккоректен.
0
13.05.2014, 21:59

Не по теме:

The trick, Да, я понял, что что-то упустил.

0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
13.05.2014, 22:05

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
Придумай что-то уникальное
неохота...
У меня 2 нарушения стоит... отсутствует много чего...
и многих прав нет.. :( ... до лета такое безобразие будет продолжаться...



Добавлено через 1 минуту

Не по теме:

я в соседней теме чтото уникальное придумал...

0
13.05.2014, 22:19

Не по теме:

FelixMacintosh, возьми себя в руки и хватит уже плакаться.

0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
13.05.2014, 23:39
Цитата Сообщение от Dragokas Посмотреть сообщение
Function isKyr2(s$) As Boolean
* * Select Case X
Путь оптимизации достаточно очевиден:
Visual Basic
1
2
3
4
5
6
7
8
Function isKyr4(s$) As Boolean
    Dim i&
    i = AscW(s)
    Select Case i
    Case 1040& To 1103&, 1025&, 1105&
        isKyr4 = True
    End Select
End Function
А вот попытки заменить Select Case на If, AscW на GetMem2 к успеху не приводят
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
'Медленнее!
Declare Sub GetMem2 Lib "msvbvm60" (Src As Any, Dst As Any)
 
Function isKyr5(s$) As Boolean
    Dim i%
    GetMem2 ByVal StrPtr(s), i
    If i > 1024 Then
      If i > 1039 Then
        If i < 1104 Then isKyr5 = True: Exit Function
        If i = 1105 Then isKyr5 = True: Exit Function
      ElseIf i = 1025 Then isKyr5 = True
      End If
    End If
End Function
Добавил эти функции к коду, скомпилировал со всеми оптимизациями, вот результат:
Миниатюры
Поиск русских символов в строке  
1
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.05.2014, 23:41
Казанский, тест неккоректен
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
13.05.2014, 23:44
The trick, почему? А как надо?
1
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
13.05.2014, 23:51
Казанский, я уже как-то писал на счет тестов посмотри в моих постах где-то (сам сижу с калькулятора, поэтому трудновато юзать поиск). Вкратце у тебя крутятся пустые циклы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.05.2014, 23:51
Помогаю со студенческими работами здесь

Поиск русских символов в строке
Привет. Как можно найти в строке русские символы, с помощью регулярных выражений?

Поиск слов в строке состоящей из русских символов.
Здравствуйте. Помогите пожалуйста с программой. Мне нужно найти местоположение слова в строке вводимой с консоли. #include...

Проверка русских символов в строке
Здравствуйте. Эта программка просит ввести строку,и если есть слово, заканчивающиеся на &quot;к&quot; + space, то она должна вывести YES, а...

Поиск русских символов
Нужно скопировать все слова(латинские и русские) без лишних символов из memo1.text в коллекцию. Удалить все символы кроме латинских...

Поиск русских символов в файле
Мне дано имя файла. нужно в ней найти русские символы и пробелы... если есть то выдать ошибку. Да и как в treeview выделить красным цветом...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru