我正在處理一些家中的代碼,假設查找並識別錯誤是輸入文件。我明白了,但兩個小錯誤正在打擊我。但主要問題是這樣的。我必須製作一個標識「3077.B22」爲錯誤的代碼,因爲前5列是假設爲數字的,但我當前的代碼正在讓它通過。它擊中所有其他東西,所以我不得不相信它將小時看作小數點。這是我對這部分的關注。週期計數爲數字(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.
我的第二個問題是類似的,因爲它在另一個字段中看到*爲字母。 這裏是款到:
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.
請幫幫忙,我只要我克服在路上這個小凸起來完成。
請記住:微軟作爲一個比COBOL更新的企業。從MS開始,目前沒有安裝MS平臺的代碼,只是因爲它們目前的編譯器無法編譯它,更不用說它們的操作系統了。如果你打算在覈心繫統上花費5000萬美元(就像很多銀行一樣)......請給自己幾分鐘時間來選擇一個平臺。 – 2011-01-19 06:02:25