Создание банковского ключа

Материал из DRKB



function CheckCtrlKey(ANLs: string; AMfo: Real): Boolean;
const
  { 12345678901234567890xxx }
  msk: string[28] = '71371371371371371371713';
var
  i: Byte;
  s: Integer;
  nls: string[28];
  bic: string[10];
begin
  bic := LeftPad(RealToStr(AMfo, 9, 0), 9);
  if bic[7] <> '0' then { < =Простая проверка -- это РКЦ? }
    { не учитывает ГРКЦ }
    nls := bic[7] + bic[8] + bic[9]
  else
    nls := '0' + bic[5] + bic[6]; { РКЦ }
  nls := ANLs + nls;
  s := 0;
  for i := 1 to 23 do
    s := s + (((Byte(nls[i])-48) * (Byte(msk[i])-48)) mod 10);
  s := s mod 10;
  Result := (s = 0);
end;


Source: http://delphiworld.narod.ru/
ID: 04052