вкратце опишу суть: ранее при использовании Delphi 7 (до перехода на Юникод) использовался питон-скрипт по коррекции раскладки клавиатуры (если вводилась кирилица, автоматом переключалось на латиницу), работал корректно. После перехода на Delphi 2007 нижеуказанный скрипт перестал работать. В питоне не силен, посему прошу помощи в доработке скрипта:
def Convert(s): eng =u'QWERTYUIOPASDFGHJKLZXCVBNM' rus=u'\u0419\u0426\u0423\u041a\u0415\u041d\u0413\u0428\u0429\u0417\u0424\u042b\u0412\u0410\u041f\u0420\u041e\u041b\u0414\u042f\u0427\u0421\u041c\u0418\u0422\u042c' s_out ='' l=len(s) i=0 while i < l : j = ord(s[i]) if j > 128 : if j < 224 : i = i + 1 j2 = ord(s[i]) k = (j2%64) + (j %32) * 64 s2 = unichr(k) try : s_out += eng[rus.index(s2)] except : s_out += s[i-1: i] else : i = i+2 s_out += s[i-2: i] else : s_out += s[i] i += 1 return (s_out)
естественно при передаче в функцию юникодной строки имеем символы с кодом > 224
так например передаем кирилическую ‘К’… по отладке имеет код = 1050.
Помогите доработать скрипт, указать на ошибки. Заранее спасибо откликнувшимся!