home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / ArgentCompta / Bankperfect / bp.exe / Scripts / Luhn / luhn.py < prev   
Text File  |  2005-10-14  |  1KB  |  31 lines

  1. #Version 1.3
  2. R = [0x000000CC, 0x00008800, 0x00CC0000, "incorrect", "valide", "incomplet"]
  3.  
  4. def check(S):
  5.   s = S.Text
  6.   if len(s) > 16 or not s.isdigit(): i = 0
  7.   elif len(s) < 16: i = 2
  8.   else:
  9.     T, d = 0, 0
  10.     for c in s:
  11.       if d: T += int(c)
  12.       else: T += (int(c) * 2) % 9
  13.       d = not d
  14.     i = T > 0 and T % 10 == 0
  15.   res.Font.Color = R[i]
  16.   res.Caption ="Le numΘro est %s" %R[i+3]
  17.  
  18. f = CreateComponent("TForm", None)
  19. f.Font.Name = "Tahoma"
  20. f.SetProps(Position="poMainFormCenter", Width=300, Height=180, Caption="ClΘ de Luhn", BorderStyle="bsSingle", BorderIcons=["biSystemMenu"])
  21. cb = CreateComponent("TLabel", f)
  22. cb.SetProps(Parent=f, Left=20, Top=20, Width=200, Caption="Carte bancaire n░ :")
  23. cb.Font.Style = ["fsBold"]
  24. num = CreateComponent("TEdit", f)
  25. num.SetProps(Parent=f, Left=20, Top=40, Width=250, OnChange=check)
  26. res = CreateComponent("TLabel", f)
  27. res.SetProps(Parent=f, Left=20, Top=70, Width=200)
  28. res.Font.Style = ["fsBold"]
  29. ok = CreateComponent("TButton", f)
  30. ok.SetProps(Parent=f, Left=105, Top=100, Width=90, Height=25, Caption="OK", Default=1, Cancel=1, ModalResult=1)
  31. f.ShowModal()