string cyrillicPattern = '([а-яА-ЯЁё])'; // паттерн для ловли кириллич символов
string gsInpText = "Жопа - новый год! with english"; // тестовая строка
string Translit(string aInput) {
int i;
string sOut = aInput;
TStringList t_engL = TStringList.Create();
TStringList t_engU = TStringList.Create();
TStringList t_rusL = TStringList.Create();
TStringList t_rusU = TStringList.Create();
TStringList t_dict = TStringList.Create();
t_engL.CommaText = "a,b,v,g,d,e,yo,zh,z,i,y,k,l,m,n,o,p,r,s,t,u,f,kh,ts,ch,sh,shch,'',y,',e,yu,ya,#";
t_engU.CommaText = "A,B,V,G,D,E,Yo,Zh,Z,I,Y,K,L,M,N,O,P,R,S,T,U,F,Kh,Ts,Ch,Sh,Shch,'',Y,',E,Yu,Ya,#";
t_rusL.CommaText = "а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я,№";
t_rusU.CommaText = "А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,№";
for (i=0; i < t_rusL.Count; i++) {
sOut = ReplaceStr(sOut,t_rusL.Strings[i],t_engL.Strings[i]);
sOut = ReplaceStr(sOut,t_rusU.Strings[i],t_engU.Strings[i]);
}
return sOut;
t_engL.Free();
t_rusL.Free();
t_engU.Free();
t_rusU.Free();
}
///////////////////////////////////////////////////////////////////////////////
// Г Л А В Н А Я П Р О Ц Е Д У Р А //
{
string sTmp, sInp;
if (HmsRegExMatch(cyrillicPattern,gsInpText,sTmp)) HmsLogMessage(1,Translit(gsInpText));
sInp = "Съешь еще этих мягких булочек! Да с № пятсот";
if (HmsRegExMatch(cyrillicPattern,sInp,sTmp)) HmsLogMessage(1,Translit(sInp));
}