创建一个函数来检查 ID 号是否满足条件

Create a function that checks if ID number satisfies criteria

我是 NAV 的新手,所以我的问题可能看起来有点菜鸟,但就这样吧。 我创建了一个 table,它有一个名为 ID number 的字段,用户需要在其中输入一个代表 his/her 的 ID 的 10 位 Biginteger(或代码,IDK 更好)。 我必须创建一个函数,通过检查它是否满足以下条件来检查这个数字是否正确:

如果数字是ABCDEFGHIJ,那么数字J(称为控制数字)必须等于: J=13-( 7*(A+G) + 6*(B+H) + 5*(C+I) + 4*(D+J)) MOD 13

此外,还需要满足以下条件:

J <= 9 -> X = J
J > 9 -> X = 0

我想先使用函数 FORMAT 将整数转换为字符串,然后 COPYSTR 为每个局部变量 A、B、C、D... 但它不起作用:( 谁能帮我提供正确的代码?

Str := format("Id"); A:=Str[1]; B:=Str[2];

等等...

或者,如果您希望 A、B、C 为整数,那么。

Str := format("Id"); Evaluate(A, Str[1]); Evaluate(B, Str[2]);

你可以试试这个对我有用的代码:

Num : BigInteger;
Digits : Array of Byte;
I : Integer;

FOR i := 10 DOWNTO 1 DO BEGIN
  Digits[i] := Num MOD 10;
  Num := Num DIV 10;
END;

如果它不适合你,请告诉我。