To get the full range of
AutoIt
$timer = TimerInit() $sRange = _GetRangeSPE() MsgBox(0, "Timer", Round(TimerDiff($timer) / 1000, 2) & ' sec') $hFile = FileOpen(@ScriptDir & '\Range.txt', 2) FileWrite($hFile, $sRange) FileClose($hFile) Func _GetRangeSPE() Local $Lower, $Upper, $s, $sRange, $tmp, $trg1 = 0, $trg2 = 0 For $i = 0x80 To 0xFFFF $s = ChrW($i) $Upper = StringUpper($s) $Lower = StringLower($s) If Not ($Upper == $Lower) Then $trg1 += 1 $tmp = $i Else $trg1 = 0 EndIf Switch $trg1 Case 1 $sRange &= '\x{' & Hex($i, 4) & '}' Case 2 $trg2 = 1 Case 3 $sRange &= '-' Case 0 If $trg2 Then $trg2 = 0 $sRange &= '\x{' & Hex($tmp, 4) & '}' EndIf EndSwitch Next Return $sRange EndFunc ;==>_GetRangeSPE
AutoIt
$timer = TimerInit() $sRes = __FO_UserLocale2('Она может задать диапазон не обязательно для русского языка. Check if a string fits a given regular expression pattern.', '\x{00C0}-\x{00D6}\x{00D8}-\x{00DE}\x{00E0}-\x{00F6}\x{00F8}-\x{012F}\x{0132}-\x{0137}\x{0139}-\x{0148}\x{014A}-\x{017E}\x{0181}-\x{018C}\x{018E}-\x{0194}\x{0196}-\x{0199}\x{019C}\x{019D}\x{019F}-\x{01A5}\x{01A7}-\x{01A9}\x{01AC}-\x{01B9}\x{01BC}\x{01BD}\x{01C4}\x{01C6}\x{01C7}\x{01C9}\x{01CA}\x{01CC}-\x{01EF}\x{01F1}\x{01F3}-\x{01F5}\x{01FA}-\x{0217}\x{0253}\x{0254}\x{0256}\x{0257}\x{0259}\x{025B}\x{0260}\x{0263}\x{0268}\x{0269}\x{026F}\x{0272}\x{0275}\x{0283}\x{0288}\x{028A}\x{028B}\x{0292}\x{0386}\x{0388}-\x{038A}\x{038C}\x{038E}\x{038F}\x{0391}-\x{03A1}\x{03A3}-\x{03AF}\x{03B1}-\x{03CE}\x{03E2}-\x{03EF}\x{0401}-\x{040C}\x{040E}-\x{044F}\x{0451}-\x{045C}\x{045E}-\x{0481}\x{0490}-\x{04BF}\x{04C1}-\x{04C4}\x{04C7}\x{04C8}\x{04CB}\x{04CC}\x{04D0}-\x{04EB}\x{04EE}-\x{04F5}\x{04F8}\x{04F9}\x{0531}-\x{0556}\x{0561}-\x{0586}\x{10A0}-\x{10C5}\x{1E00}-\x{1E95}\x{1EA0}-\x{1EF9}\x{1F00}-\x{1F15}\x{1F18}-\x{1F1D}\x{1F20}-\x{1F45}\x{1F48}-\x{1F4D}\x{1F51}\x{1F53}\x{1F55}\x{1F57}\x{1F59}\x{1F5B}\x{1F5D}\x{1F5F}-\x{1F7D}\x{1FB0}\x{1FB1}\x{1FB8}-\x{1FBB}\x{1FC8}-\x{1FCB}\x{1FD0}\x{1FD1}\x{1FD8}-\x{1FDB}\x{1FE0}\x{1FE1}\x{1FE5}\x{1FE8}-\x{1FEC}\x{1FF8}-\x{1FFB}\x{2160}-\x{217F}\x{24B6}-\x{24E9}\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}') MsgBox(0, "Timer", Round(TimerDiff($timer), 2) & ' msec' & @LF & $sRes) Func __FO_UserLocale2($sMask, $sLocale) Local $s, $tmp $sLocale = StringRegExpReplace($sMask, '[^' & $sLocale & ']', '') $tmp = StringLen($sLocale) For $i = 1 To $tmp $s = StringMid($sLocale, $i, 1) If $s Then If StringInStr($sLocale, $s, 0, 2, $i) Then $sLocale = $s & StringReplace($sLocale, $s, '') EndIf Else ExitLoop EndIf Next If $sLocale Then $tmp = StringSplit($sLocale, '') For $i = 1 To $tmp[0] $sMask = StringReplace($sMask, $tmp[$i], '[' & StringUpper($tmp[$i]) & StringLower($tmp[$i]) & ']') Next EndIf Return $sMask EndFunc ;==>__FO_UserLocale2
AutoIt
$timer = TimerInit() $sRes = __FO_UserLocale('Она может задать диапазон не обязательно для русского языка. Check if a string fits a given regular expression pattern.', '\x{80}-\x{ffff}') MsgBox(0, "Timer", Round(TimerDiff($timer), 2) & ' msec' & @LF & $sRes) Func __FO_UserLocale($sMask, $sLocale) Local $s, $tmp $sLocale = StringRegExpReplace($sMask, '[^' & $sLocale & ']', '') $tmp = StringLen($sLocale) For $i = 1 To $tmp $s = StringMid($sLocale, $i, 1) If $s Then If StringInStr($sLocale, $s, 0, 2, $i) Then $sLocale = $s & StringReplace($sLocale, $s, '') EndIf Else ExitLoop EndIf Next If $sLocale Then Local $Upper, $Lower $tmp = StringSplit($sLocale, '') For $i = 1 To $tmp[0] $Upper = StringUpper($tmp[$i]) $Lower = StringLower($tmp[$i]) If Not ($Upper == $Lower) Then $sMask = StringReplace($sMask, $tmp[$i], '[' & $Upper & $Lower & ']') Next EndIf Return $sMask EndFunc ;==>__FO_UserLocale
I want to make search of the files which names are sensitive to the register on any system. In such a way I form regular expression.
I on a right way?