私は、通常の銀行口座番号をIBAN番号に変換するプログラムを作成しています。このプロセスの一部は、アルファベット+ 9での位置に対応する数字に(銀行ID、支店ID、ISO国コードなどのフィールドの)文字を変換する必要があることを意味します。したがって、A = 10、B = 11 、Z = 35。文字を数字に変換するにはどうすればよいですか?
基本的に、次の銀行ID: "LOYD"は "21243413"になります。
これらの数値を後で文字列に入れて計算する必要があります。今
、入力された銀行-IDは、常に同じ長さで、いつも手紙、私は私の作業ストレージの残りの部分の間にこれを入れたいならば:
LETTERS PIC X(36) VALUE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
そして、私はこれを書きたいです:
INITIALIZE BANK-CODE-NR
PERFORM VARYING LOOP-COUNTR FROM 1 BY 1 UNTIL
LOOP-COUNTR > 4
INSPECT LETTERS
TALLYING BANK-CODE-NR(LOOP-COUNTER) FOR
CHARACTERS BEFORE INITIAL BANK-CD IN
COPYBOOK(LOOP-COUNTR:1)
END-PERFORM
しかし、この場合には、銀行のIDは、長い4つのポジション、あるいはさらに長いかもしれません。さらに、私はPIC Nフィールドで作業しています。つまり、INSPECTは機能しません。 EXTRA INFO
FOR
EDITED私はそれで国民を持っているコピーブックで働いています。 これは次のように構成されています
01 Input-IBAN. 05 COUNTRY-CODE PIC N(02). 05 BANK-ID PIC N(10). 05 BRANCH-ID PIC N(10). 05 ACCOUNT-NR PIC N(28). 05 Output-IBAN PIC N(34).
は、それが呼ばれるプログラムです。
もう一度定義を表示する必要があります。彼らはまだPIC Nフィールドですか? –
ループを一切使わずに実行できます。 –
はい、それでもPIC Nフィールドです。私のポストを更新しました – Lena