1

Тема: AHK: Определение регистра русского символа

Доброго времени суток.
Обрезаю 1 символ через SubStr, как можно определить является он заглавной буквой или строчной(русский алфавит).
Заранее спасибо.

2

Re: AHK: Определение регистра русского символа

Для латинских букв есть команда IF var is upper.
Для русских наверное нужно в RegEx задать диапазон [А-Я,Ё].

3

Re: AHK: Определение регистра русского символа

 var:=А
 if RegExMatch(var, "[А-Я]")
	msgbox, 1

попробовал так, не работает

4

Re: AHK: Определение регистра русского символа

seriyforum пишет:
var:=А

После этой строчки проверьте в MsgBox, что у вас находится в переменной var.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Определение регистра русского символа

забыл "", спасибо, работает.

6

Re: AHK: Определение регистра русского символа

var := "Ё"
MsgBox % var ~= "[А-ЯЁ]" 

А шо ж вы ё забыли?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Определение регистра русского символа

А где же секта поклонников заковыристых регексов, никак в отпуске?

v := "Ё"
MsgBox % RegExMatch(v, "\p{Lu}")
MsgBox % v ~= "\p{Lu}"

8

Re: AHK: Определение регистра русского символа

Пишу из отпуска:

MsgBox, % "Ё" ~= "(*UCP)[[:upper:]]"
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Определение регистра русского символа

По-простому:

MsgBox % IsUpper("ё")
MsgBox % IsUpper("Ё")

IsUpper(s) {
	local t
	StringUpper t, s
	return s == t
}

10

Re: AHK: Определение регистра русского символа

local здесь не нужно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Определение регистра русского символа

Нужно, по хорошему.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

12

Re: AHK: Определение регистра русского символа

http://forum.script-coding.com/viewtopi … 29#p105029
Только с недавнего времени можно не перечислять имена после local.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK: Определение регистра русского символа

На случай, если t задана суперглобальной? Ну так это дурной тон, этак "защит от дурака" не напасёшься. В крайнем случае просто local.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: Определение регистра русского символа

Почему дурной тон, делаешь функции, а "дурак" их вставляет в свой 10к+ супер код, а потом попробуй найди что у него с чем перехлестнулось.

teadrinker пишет:

В крайнем случае просто local.

Я и говорю, но только с недавнего времени, до v1.1.27 скрипт даже не запустится.
Я считаю что есть этот local, даже вне контекста, и пускай будет.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15

Re: AHK: Определение регистра русского символа

ypppu пишет:

Для латинских букв есть команда IF var is upper.
Для русских наверное нужно в RegEx задать диапазон [А-Я,Ё].

var = Ё
StringCaseSense Locale
if var is upper
   msgbox

16

Re: AHK: Определение регистра русского символа

Malcev пишет:
StringCaseSense Locale

Я тоже об этом раньше знал, да забыл.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17 (изменено: YMP, 2018-08-13 14:40:11)

Re: AHK: Определение регистра русского символа

stealzy пишет:

Вот если убрать "не", тогда все сходится. Очепятка?

Да и так вроде сходится. Локаль используется, чтобы определить, какие буквы различаются только регистром.

Т.е. такое свойство буквы, как регистр, для неанглийских определяется только через локаль.

18

Re: AHK: Определение регистра русского символа

stealzy пишет:

Malcev, каким образом вышли на этот прием?

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

19 (изменено: serzh82saratov, 2018-08-13 19:12:01)

Re: AHK: Определение регистра русского символа

teadrinker пишет:
Malcev пишет:
StringCaseSense Locale

Я тоже об этом раньше знал, да забыл.

Я тоже.
http://forum.script-coding.com/viewtopi … 016#p90016
Про него все забывают.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

20

Re: AHK: Определение регистра русского символа

Может, теперь запомним.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: AHK: Определение регистра русского символа

Обязательно запомним, но ненадолго. Статистика уже есть.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui