创建一个函数来检查 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;
如果它不适合你,请告诉我。
我是 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;
如果它不适合你,请告诉我。