私は自宅で少しのコードを作成しています。これは、エラーを見つけて特定することが入力ファイルであると考えられます。私はちょうど正しいことを得たが、2つの小さな誤りが私に当たっている。しかし、これは大きな問題です。私は最初の5列が数値であると考えているのでエラーとして "3077.B22"を識別するコードを作成する必要がありますが、私の現在のコードはそれを渡しています。それは他のすべてのものに当てはまるので、私はそれが小数点としてピリオドを見ていると信じなければならない。ここで私はこの部分に懸念を持っています。期間は数値としてカウントされます(COBOL)
01 PART-NUMBER-CHECK.
05 P-N-NUM-1 PIC X(5).
05 P-N-LETTER PIC X.
05 P-N-NUM-2 PIC XX.
300-VALIDATE-PART-NUMBER.
MOVE 'NO' TO FIELD-ERROR-SWITCH
MOVE PART-NUMBER TO PART-NUMBER-CHECK
EVALUATE P-N-NUM-1
WHEN 00001 THRU 99999 CONTINUE
WHEN OTHER MOVE 'YES' TO FIELD-ERROR-SWITCH
END-EVALUATE
IF P-N-LETTER IS NUMERIC
MOVE 'YES' TO FIELD-ERROR-SWITCH
END-IF
IF P-N-LETTER IS ALPHABETIC-LOWER
MOVE 'YES' TO FIELD-ERROR-SWITCH
END-IF
IF P-N-NUM-2 IS ALPHABETIC
MOVE 'YES' TO FIELD-ERROR-SWITCH
END-IF
IF (P-N-NUM-2 > 00 AND < 69)
OR (P-N-NUM-2 >77 AND < 100)
CONTINUE
ELSE
MOVE 'YES' TO FIELD-ERROR-SWITCH
END-IF
IF FIELD-ERROR-SWITCH = 'YES'
MOVE 'YES' TO RECORD-ERROR-SWITCH
MOVE 'Part Number' TO FIELD-NAME
MOVE PART-NUMBER TO FIELD-VALUE
PERFORM 400-WRITE-DETAIL-LINE
END-IF.
私の2番目の問題は、別のフィールドに*がアルファベットとして表示されているのと同様の原因です。ここで はそれと段落です:
340-VALIDATE-INITIAL.
MOVE 'NO' TO FIELD-ERROR-SWITCH
INSPECT INITIALS
TALLYING I-CHECK FOR ALL SPACES
IF I-CHECK > 0
MOVE 'YES' TO FIELD-ERROR-SWITCH
MOVE 0 TO I-CHECK
END-IF
IF INITIALS IS NUMERIC
MOVE 'YES' TO FIELD-ERROR-SWITCH
END-IF
IF FIELD-ERROR-SWITCH = 'YES'
MOVE 'YES' TO RECORD-ERROR-SWITCH
MOVE 'Initials' TO FIELD-NAME
MOVE INITIALS TO FIELD-VALUE
PERFORM 400-WRITE-DETAIL-LINE
END-IF.
助けてください、私はできるだけ早く私は道路で、この小さなバンプを乗り越えるとして行われています。
これを覚えておいてください。企業としては、MicrosoftはCOBOLよりも新しいものです。また、現在のコンパイラはOSはもちろんのこと、コンパイルできないという理由から、MSの初めからMSプラットフォームでコードを実行しているインストールはありません。コアシステム(多くの銀行がそうするように)で5000万を使うつもりなら...プラットフォームを選ぶのに数分を要します。 –