0

私はNAVに慣れていないので、私の質問は少し初心者に見えるかもしれませんが、ここに行きます. ユーザーが自分のIDを表す10桁のBiginteger(またはコード、IDKの方が良い)を入力する必要があるID番号と呼ばれるフィールドを持つテーブルを作成しました。次の基準を満たしているかどうかを確認して、この数値が正しいかどうかを確認する関数を作成する必要があります。

number が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 のそれぞれに変換することを考えましたが、うまくいきません:(誰かが正しいコードで私を助けてくれますか?

4

2 に答える 2

1

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

等...

または、A、B、C を整数として使用する場合。

Str := format("ID"); 評価する (A, Str[1]); Evaluate(B, Str[2]);

于 2016-07-10T21:01:59.530 に答える
0

私にとってはうまくいったので、このコードを試すことができます:

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;

うまくいかない場合はお知らせください。

于 2016-07-11T14:17:24.430 に答える