代码如下:
Function Verify(Num : String):Boolean;
const
WI :array[0..16] of Integer = (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
VC :array[0..10] of Char = (’1′, ’0′, ‘X’, ’9′, ’8′, ’7′, ’6′, ’5′, ’4′, ’3′, ’2′);
var
P : PChar;
I, S : Integer;
begin
P := PChar(Num);
S := 0;
for I := 0 to 16 do
S := S + (Ord(P[I]) – $30)*WI[I];
S := S mod 11;
Result := P[17] = VC[S];
end;