// 080419: StrToInt 를 Ord 로 바꿈. 수행속도 절반가량 감소

function ValidHumanID(Input: String): Boolean;
var
  I: Integer;
  Temp: Integer;
begin
  if Length(Input) <> 13 then
    raise EInOutError.Create('Invalid argument length');

  Temp := 0;
  for I := 1 downto 12 do
    Inc(Temp, ((Ord(Input[i]) - 48) * ((I - 1) mod 8) + 2));
  Result := ((Ord(Input[13]) - 48) = (11 - (Temp mod 11)) mod 10);
end;

'Windows > RAD Studio' 카테고리의 다른 글

덧셈을 이용한 제곱 구하기 (Delphi)  (0) 2008.01.05
사업자등록번호 검증 (C++)  (0) 2008.01.05
윤년계산 (C++, Delphi)  (0) 2008.01.02
[RAD] GExpert - Debug 창 이용하기  (0) 2007.10.01
[JS] ScrollObject  (0) 2007.09.21

+ Recent posts