$sCyrrilicString = "Привет, Как дела?" Sleep(100) ;Это чтобы сравнять таймеры на равные уровни, есть теория что при запуске идёт задержка в таймере $iTimer = TimerInit() _Translit_Proc_1($sCyrrilicString) ConsoleWrite("_Translit_Proc_1: " & TimerDiff($iTimer) & @CRLF) $iTimer = TimerInit() _Translit_Proc_2($sCyrrilicString) ConsoleWrite("_Translit_Proc_2: " & TimerDiff($iTimer) & @CRLF) Func _Translit_Proc_1($sString) Local Const $aCyrTab[67] = [66, "а","б","в","г","д","е","ё" ,"ж" ,"з","и","й","к","л","м","н","о","п", _ "р","с","т","у","ф","х","ц" ,"ч" ,"ш","щ","ь","ъ","ы","э","ю","я" , _ "А","Б","В","Г","Д","Е","Ё" ,"Ж" ,"З","И","Й","К","Л","М","Н","О","П", _ "Р","С","Т","У","Ф","Х","Ц" ,"Ч" ,"Ш","Щ","Ь","Ъ","Ы","Э","Ю","Я" ] Local Const $aLatTab[67] = [66, "a","b","v","g","d","e","yo","zh","z","i","j","k","l","m","n","o","p", _ "r","s","t","u","f","h","ts","ch","sh","sch","''",'"',"y","e","yu","ya", _ "A","B","V","G","D","E","YO","ZH","Z","I","J","K","L","M","N","O","P","R", _ "S","T","U","F","H","TS","CH","SH","SCH","''",'"',"Y","E","YU","YA"] For $i = 1 To $aCyrTab[0] $sString = StringReplace($sString, $aCyrTab[$i], $aLatTab[$i], 0, 2) Next Return $sString EndFunc ;==>_Translit_Proc_1 Func _Translit_Proc_2($sString) Local Const $aCyrTab[67] = [66, "а","б","в","г","д","е","ё" ,"ж" ,"з","и","й","к","л","м","н","о","п", _ "р","с","т","у","ф","х","ц" ,"ч" ,"ш","щ","ь","ъ","ы","э","ю","я" , _ "А","Б","В","Г","Д","Е","Ё" ,"Ж" ,"З","И","Й","К","Л","М","Н","О","П", _ "Р","С","Т","У","Ф","Х","Ц" ,"Ч" ,"Ш","Щ","Ь","Ъ","Ы","Э","Ю","Я" ] Local Const $aLatTab[67] = [66, "a","b","v","g","d","e","yo","zh","z","i","j","k","l","m","n","o","p", _ "r","s","t","u","f","h","ts","ch","sh","sch","''",'"',"y","e","yu","ya", _ "A","B","V","G","D","E","YO","ZH","Z","I","J","K","L","M","N","O","P","R", _ "S","T","U","F","H","TS","CH","SH","SCH","''",'"',"Y","E","YU","YA"] For $i = 1 To $aCyrTab[0] $sString = StringReplace($sString, $aCyrTab[$i], $aLatTab[$i], 0, 2) If @extended = 0 And StringIsASCII($sString) Then ExitLoop Next Return $sString EndFunc ;==>_Translit_Proc_2 |