uses StrUtils,SysUtils;
const
Chars: array[0..75] of Char = ('a','b','c','d','e','f','g','h','i','j','k','l','m','n',
'o','p','q','r','s','t','u','v','w','x','y','z',' ','а',
'б','в','г','д','е','ё','ж','з','и','й','к','л',
'м','н','о','п','р','с','т','у','ф','х','ц','ч','ш',
'щ','ъ','ы','ь','э','ю','я','!','@','#','%','{','}',
'<','>','?',')','(','*','&','^','[',']');
Num: array[0..75] of String = ('Q3','W6','J8','D2','S4','B2','9E','7U','5C','0H',
'F5','LV','3C','IO','00','01','P1','FF','U6',
'M2','CD','KE','AZ','H4','7I','Z9','RO',
'FT','25','8J','BM','PN','5T','U2','SA','US','MH','LP','CS','3F',
'R4','I7','9V','X5','MX','SF','7X','34','04','70','14','5L','2K',
'Q8','KG','ZA','6Z','BD','MR','TT','TY','KJ','3I','DA','87','45','
ML','QW','4R','0E','F7','5H','Y4','PO','VS','CU');
Extra: array[0..75] of String = ('UJ','FG','3N','W2','M0','83','RT','9X','F2','U4',
'DJ','VC','7B','SY','LQ','21','6T','ND','KI',
'1S','G3','Y7','6K','EJ','0L','0D','7F',
'WE','JI','UY','1G','66','FR','HL','KS','OW','0N','VV','IN','TY',
'87','T6','47','53','91','2N','FA','QQ','PP','C3','4E','CH','JU',
'2S','5M','H6','TQ','8D','ZF','99','JH','2B','MQ','LL','00',
'ER','38','M4','7A','XZ','VD','K0','EN','GR','GG','YO');
function NameToKey(Name: String): String;
function CheckKey(Name,Key: String): Boolean;
implementation
function NameToKey(Name: String): String;
var I: Integer;
S:String;
begin
S:='KEY';
for I := 0 to 75 do
begin
if (ContainsText(Name,Chars[i])=true) then
begin
S:=S+'-'+Num[i]+Extra[i];
end;
end;
Result:=S;
end;
function CheckKey(Name,Key: String): Boolean;
var I: Integer;
S:String;
begin
S:='KEY';
for I := 0 to 75 do
begin
if (ContainsText(Name,Chars[i])=true) then
begin
S:=S+'-'+Num[i]+Extra[i];
end;
end;
if S=Key then
begin
Result:=true
end
else
begin
Result:=false;
end;
end;