COBOL输出不变。无法使用记事本查看输出。

COBOL输出不变。无法使用记事本查看输出。,cobol,Cobol,我正在尝试查看我正在处理的程序的输出。我被指示使用记事本,但每次打开文件时,我都会得到更改之前的旧输出。我不知道这是编程错误还是我的技术失误。你们能看看有什么事吗 IDENTIFICATION DIVISION. PROGRAM-ID. CH0402Practice. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT PAYROLL-MASTER

我正在尝试查看我正在处理的程序的输出。我被指示使用记事本,但每次打开文件时,我都会得到更改之前的旧输出。我不知道这是编程错误还是我的技术失误。你们能看看有什么事吗

       IDENTIFICATION DIVISION.
   PROGRAM-ID. CH0402Practice.
   ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
       SELECT PAYROLL-MASTER
           ASSIGN TO "C0402.DAT"
           ORGANIZATION IS LINE SEQUENTIAL.
       SELECT PRINT-FILE
           ASSIGN TO "C0402.RPT".
   DATA DIVISION.
   FILE SECTION.
   FD  PAYROLL-MASTER
       LABEL RECORDS ARE STANDARD
       RECORD CONTAINS 80 CHARACTERS
       BLOCK CONTAINS 20 RECORDS.
   01  MASTER-REC.
       05  EMP-NO-IN                       PIC X(5).
       05  NAME-IN                         PIC X(20).
       05  LOC-CODE-IN.
           10  TERR-NO-IN                  PIC XX.
           10  OFFICE-NO-IN                PIC XX.
       05  SALARY-IN                       PIC 9(6).
       05  SS-NO-IN                        PIC 9(9).
       05  DEP-IN                          PIC 99.
       05  JOB-CLASS-IN                    PIC 99.
       05                                  PIC X(32).
   FD  PRINT-FILE
       LABEL RECORDS ARE OMITTED
       RECORD CONTAINS 80 CHARACTERS.
   01  REPORT-OUT                          PIC X(80).

   WORKING-STORAGE SECTION.
   01  ARE-THERE-MORE-RECORDS              PIC XXX.
   01  HEADING-LINE1.
       05                                  PIC X(33)  VALUE SPACES.
       05                                  PIC X(15)  VALUE
           "PAYROLL LISTING".
       05                                  PIC X(32)  VALUE SPACES.

   01  HEADING-LINE2.
       05                                  PIC X(5)   VALUE SPACES.
       05                                  PIC X(10)  VALUE
           "EMP NUMBER".
       05                                  PIC X(4)   VALUE SPACES.
       05                                  PIC X(4)   VALUE
           "NAME".
       05                                  PIC X(16) VALUE
           "SALARY".
       05                                  PIC X(7)  VALUE SPACES.
       05                                  PIC X(5)  VALUE
           "SS NO".
       05                                  PIC X(9)  VALUE
           "DEPENDENT".
       05                                  PIC X(25) VALUE SPACES.
   01  DETAIL-LINE.
       05                                  PIC X(5).
       05  EMP-NO-OUT                      PIC X(5).
       05                                  PIC X(14).
       05  NAME-OUT                        PIC X(20).
       05                                  PIC X(4).
       05  SALARY-OUT                      PIC 9(6).
       05                                  PIC X(7).
       05  SS-NO-OUT                       PIC 9(9).
       05                                  PIC X(7).
       05  DEP-OUT                         PIC 99.
       05                                  PIC X(21).



   PROCEDURE DIVISION.
   100-MAIN-MODULE.
       PERFORM 100-INITIALIZATION-MODULE.
       PERFORM 200-PRINT-MODULE
            UNTIL ARE-THERE-MORE-RECORDS = 'NO '.
       CLOSE PAYROLL-MASTER
             PRINT-FILE.
       STOP RUN.
   100-INITIALIZATION-MODULE.
       OPEN INPUT  PAYROLL-MASTER
            OUTPUT PRINT-FILE.
       MOVE 'YES' TO ARE-THERE-MORE-RECORDS.
       PERFORM 300-TOP-OF-PAGE-MODULE.
       PERFORM 600-READ-MODULE.
   200-PRINT-MODULE.
       MOVE SPACES TO REPORT-OUT.
       MOVE EMP-NO-IN TO EMP-NO-OUT.
       MOVE NAME-IN TO NAME-OUT.
       MOVE SALARY-IN TO SALARY-OUT.
       MOVE SS-NO-IN TO SS-NO-OUT.
       MOVE DEP-IN TO DEP-OUT.
       MOVE DETAIL-LINE TO REPORT-OUT.
       WRITE REPORT-OUT AFTER ADVANCING 1 LINES.
       PERFORM 600-READ-MODULE.

   300-TOP-OF-PAGE-MODULE.
       MOVE HEADING-LINE1 TO REPORT-OUT.
       WRITE REPORT-OUT AFTER ADVANCING 1 LINES.
       MOVE SPACES TO REPORT-OUT.
       WRITE REPORT-OUT AFTER ADVANCING 1 LINES.
       MOVE HEADING-LINE2 TO REPORT-OUT.
       WRITE REPORT-OUT AFTER ADVANCING 1 LINES.

   600-READ-MODULE.
       READ PAYROLL-MASTER
            AT END MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
       END-READ.
在此处输入代码

通常的嫌疑犯是

  • 你没有改变你认为你在程序中改变的东西
  • 在再次运行程序之前,您没有重新编译该程序,因此您最终运行的是旧版本的程序,当然,它会产生相同的结果
  • 您从另一个文件夹运行该程序,该文件夹将新的输出文件放在您认为的其他文件夹中,因此您不会真正查看新的输出文件

  • 再次运行程序时,请确保没有打开输出文件。此外,还可以找到更好的文本编辑器,如记事本+。

    删除或重命名“旧”文件以确保安全。 您可以添加“eyecatcher”写入以进行验证。
    如果文件时间戳正在更改,但输出不正确,则运行的是旧版本。 您是否已更改代码中的文件名,但正在检查旧名称