close
身份證號碼無異常!


身份證號碼太短或太長!


運算值無法整除10的錯誤訊息!


第二碼不為1或2時的錯誤訊息!


語法:

procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,c:string;
  d,i,total:integer;
begin
  a:=edit1.Text;
  b:='abcdefghjklmnpqrstuvxywzioABCDEFGHJKLMNPQRSTUVXYWZIO';
  c:=copy(a,1,1);
  d:=pos(c,b)+9;
  if d>35 then d:=d-26;         //有這一行,大小寫都不會錯誤
  total:=0;
  if length(a)10 then
    label1.Caption:='錯誤,字元太長或太短!'
  else
    begin
      if (strtoint(copy(a,2,1))1) and (strtoint(copy(a,2,1))2) then
        label1.Caption:='錯誤,你是人妖嗎?'
      else
        begin
          for i:=2 to 9 do
            begin
              total:=total + (strtoint(copy(a,i,1))*(10-i));
            end;
          total:=total+strtoint(copy(inttostr(d),1,1))+strtoint(copy(inttostr(d),2,1))*9
                 +strtoint(copy(a,10,1));
          if (total mod 10) 0 then
            label1.Caption:='錯誤,偽造身份照可是犯法的喔!'
          else
            label1.Caption:='正確,可使用的身份證號碼!';
        end;
    end;
end;


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 arthurliu 的頭像
    arthurliu

    arthurliu's blog

    arthurliu 發表在 痞客邦 留言(3) 人氣()