![]() |
![]() |
![]() |
|
Проверка на латинские буквы | ☑ | ||
---|---|---|---|---|
0
DeMi4
29.07.10
✎
16:13
|
В Семерке было OemToAnsi а как теперь в восьмерке
|
|||
1
DeMi4
29.07.10
✎
16:20
|
Может кто знает или сталкивался надо проверить строку на ввод латинских букв
|
|||
2
Живой Ископаемый
29.07.10
✎
16:21
|
что значить проверить?
|
|||
3
shuhard
29.07.10
✎
16:21
|
(1)разве диапазона кода символа не достаточно ?
|
|||
4
OmieR
29.07.10
✎
17:40
|
что-нибудь типа того:
ПроверяемыеДанные = Врег(Данные); ЕстьОшибки = Ложь; ДлинаСтроки = СтрДлина(Данные); Сч = 1; Для Сч = 1 по ДлинаСтроки Цикл КодСимвола = КодСимвола(ПроверяемыеДанные,Сч); Если (КодСимвола >= 65 И КодСимвола <= 90) Тогда Продолжить; КонецЕсли; ЕстьОшибки = Истина; Прервать; КонецЦикла; |
|||
5
DeMi4
30.07.10
✎
09:23
|
(2) Ну что бы бухгалтер ввел идентификатор именно на Английскими буквами
|
|||
6
DeMi4
30.07.10
✎
09:24
|
(3) что за диапозон кода символа
|
|||
7
almar
30.07.10
✎
09:33
|
Функция СтрокаНаписанаПоАнглийски(Знач СтрокаПараметр) Экспорт
СтрокаПараметр = СокрЛП(СтрокаПараметр); СписокДопустимыхЗначений = Новый СписокЗначений; СписокДопустимыхЗначений.Добавить(184); СписокДопустимыхЗначений.Добавить(168); СписокДопустимыхЗначений.Добавить(45); СписокДопустимыхЗначений.Добавить(46); СписокДопустимыхЗначений.Добавить(32); СписокДопустимыхЗначений.Добавить(48); СписокДопустимыхЗначений.Добавить(49); СписокДопустимыхЗначений.Добавить(50); СписокДопустимыхЗначений.Добавить(51); СписокДопустимыхЗначений.Добавить(52); СписокДопустимыхЗначений.Добавить(53); СписокДопустимыхЗначений.Добавить(54); СписокДопустимыхЗначений.Добавить(55); СписокДопустимыхЗначений.Добавить(56); СписокДопустимыхЗначений.Добавить(57); Для Сч=1 По СтрДлина(СтрокаПараметр) Цикл Код = КодСимвола(СтрокаПараметр,Сч); Если (Код>=192) И (СписокДопустимыхЗначений.НайтиПоЗначению(Код) = Неопределено) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат Истина; КонецФункции |
|||
8
Aprobator
30.07.10
✎
09:35
|
(7) ну вот - пятница началась )
|
|||
9
aka AMIGO
30.07.10
✎
09:39
|
в дополнение пятничных тем и постов :))
Тмп = Сред(Имя, 6,2); ЛатA = КодСимв("A"); ЛатZ = КодСимв("Z"); Для х=1 По 2 Цикл с = КодСимв(Сред(Тмп,х,1)); Если (с>=ЛатA) и (с<=ЛатZ) Тогда Иначе Предупреждение("Ошибка в "+Тмп+ " !"); Сообщить("Ошибка в "+Тмп+ " - не латинские буквы!"); Возврат; КонецЕсли; КонецЦикла; ЗЫ. правда, это код 7-рочный, но, думаю, конвертировать недолго :) |
|||
10
aka AMIGO
30.07.10
✎
09:42
|
а вот проверка на русскость:
РусА = КодСимв("А"); РусЯ = КодСимв("Я"); Тмп = Сред(Имя,1,4); Для х=1 По 4 Цикл с = КодСимв(Сред(Тмп,х,1)); Если (с>=РусА) и (с<=РусЯ) Тогда Иначе Предупреждение("Ошибка в "+Тмп+ " пиши по-русски!"); Сообщить("Ошибка в "+Тмп+ " !"); Возврат; КонецЕсли; КонецЦикла; |
|||
11
aka AMIGO
30.07.10
✎
09:44
|
ну, и на цифры уж..
Циф0 = КодСимв("0"); Циф9 = КодСимв("9"); Тмп = Сред(Имя, 11,2); Для х=1 По 2 Цикл с = КодСимв(Сред(Тмп,х,1)); Если (с>=Циф0) и (с<=Циф9) Тогда Иначе Предупреждение("Ошибка в "+Тмп+ " !"); Сообщить("Ошибка в "+Тмп+ " !"); Возврат; КонецЕсли; КонецЦикла; ЗЫ. с пятницей!! :)) |
|||
12
Gluk
30.07.10
✎
09:49
|
А что если так (наколенке):
АнглийскиеСимволы = "abcdefghijklmnopqrstuwvxyz"; ПрверяемыйТекст = "йцуqwe"; Для СчетчикЦикла = 1 По СтрДлина(ПрверяемыйТекст) Цикл Если Найти(АнглийскиеСимволы,НРег(Сред(ПрверяемыйТекст,СчетчикЦикла,1))) > 0 Тогда Сообщить("Есть"); Прервать; КонецЕсли; КонецЦикла; |
|||
13
DeMi4
30.07.10
✎
09:50
|
А проще ни как к примеру через OemTOAnsi тоесть через перекодирование
|
|||
14
aka AMIGO
30.07.10
✎
10:03
|
(12) ты ищешь английские символы, а автору надо проверить отсутствие кириллицы..
а вообще-то пойдет и такое :) (13) - это - вряд-ли: тебе надо проверить принадлежность символов к разным половинкам кодовой таблицы а твой вариант не делает никаких перемещений, ну, типа, из одной половины таблицы -кириллицы - в другую - латиницу. ИМХО можно прикрутить PuntoSwitcher, или как он там обзывается, только это тоже половичатое решение.. в общем - думай :) ЗЫ. в (9) и (10) - проверка только на верхнем регистре, НРег() меня не интересовал |
|||
15
skunk
30.07.10
✎
10:08
|
олеРегВыражение = Новый COMОбъект("VBScript.RegExp");
олеРегВыражение.MultiLine = Ложь; олеРегВыражение.Global = Истина; олеРегВыражение.Pattern = "[^A-z0-9]"; стрОтвет = RegExp.Replace(стрПоиска, ""); |
|||
16
aka AMIGO
30.07.10
✎
10:26
|
+14 OemToAnsi перекодирует из DOS-кодировки в Windows, т.е. вообще цель другая
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |