Транслітерація, DelphiSite

Найбільш читане

Транслітерація

Наприклад, молоко – moloko. І все. Ось приклад функції, яка транслює з українських слів до англійських. Сталася, коли потрібно було файли в mp3-плеєр переганяти - він українську не розуміє.

function Convert (OldName: string): string;

function Convert (OldName: string): string;

var OldNameLength: integer ;

OldNameLength: = length (OldName);

while i do begin

if (OldName [i] in ['A'..'Z'] + ['a'..'z'] + ['0'..'9'] +

then s:=s+OldName [i];

if OldName [ i ] in [ 'А' , 'Б' , 'а' , 'б' ] then

s: = s + chr (ord (OldName [i]) -127);

if OldName [i] in [ 'В', 'в'] then

s: = s + chr (ord (OldName [i]) -108);

if OldName [ i ] in [ 'Г' , 'г' , 'Ж' , 'ж' ] then

s: = s + chr (ord (OldName [i]) -124);

if OldName [ i ] in [ 'Д' , 'д' , 'Е' , 'е' ] then

s: = s + chr (ord (OldName [i]) -128);

if OldName [i] in [ 'З', 'з'] then

s: = s + chr (ord (OldName [i]) -109);

if OldName [i] in [ 'І', 'і', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О' , 'про' , 'П' , 'п'] then

s: = s + chr (ord (OldName [i]) -127);

if OldName [ i ] in [ 'Й' , 'й' ] then

s: = s + chr (ord (OldName [i]) -128);

if OldName [i] in [ 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у'] then

s: = s + chr (ord (OldName [i]) -126);

if OldName [i] in [ 'Ф', 'ф'] then

s: = s + chr (ord (OldName [i]) -142);

if OldName [i] in [ 'Х', 'х'] then

s: = s + chr (ord (OldName [i]) -141);

if OldName [ i ] in [ 'Ц' , 'ц' ] then

s:=s+ chr(ord (OldName [i]) -147);

if OldName [ i ] in [ 'Ы' , 'ы' ] then

s: = s + chr (ord (OldName [i]) -130);

if OldName [ i ] in [ 'Е' , 'е' ] then

s: = s + chr (ord (OldName [i]) -152);

if OldName [ i ] = 'Е' then s:=s+ 'Yo' ;

if OldName [ i ] = 'е' then s:=s+ 'yo' ;

if OldName [i] = 'Ч' then s:=s+ 'Ch';

if OldName [i] = 'год' then s:=s+ 'ch';

if OldName [i] = 'Ш' then s:=s+ 'Sh';

if OldName [i] = 'ш' then s:=s+ 'sh';

if OldName [ i ] = 'Щ' then s:=s+ 'Sch' ;

if OldName [i] = 'щ' then s:=s+ 'sch';

if OldName [i] in ['Ъ', 'ъ', 'Ь', 'ь'] then s:=s+ chr (39);