我必须对以下代码进行哪些更改才能避免重复上次输出记录?

问题描述 投票:0回答:0

我的任务是从一个有 10 条记录的输入文件中读取数据,每个字段用分号 (;) 分隔,然后写入输出文件。但是在输出文件中,我必须使用空格,而不是分号 (;)。但问题是在输出文件中,我得到了 11 条记录,最后一条记录重复了。下面是我写的代码。你能告诉我我必须做什么吗?

*-----------------------------------------------------------------
 PROCEDURE DIVISION.                                              
*-----------------------------------------------------------------
     OPEN INPUT VA0001R.                                          
     OPEN OUTPUT VA0001W.                                         
     PERFORM MAIN-PARA UNTIL WS-EOF = 'Y'.                        
     PERFORM CLOSE-PARA.                                          
 CLOSE-PARA.                                                      
     CLOSE VA0001R.                                               
     CLOSE VA0001W.                                               
     GOBACK.                                                      
 MAIN-PARA.                                                       
     READ VA0001R INTO WS-VA0001W                                 
     AT END MOVE 'Y' TO WS-EOF                                    
     NOT AT END                                                   
     DISPLAY "WS-VA0001W=" WS-VA0001W                             
     CONTINUE                                                     
     MOVE SPACES TO WS-VA0001W.                                   
     UNSTRING REG-VA0001R DELIMITED BY ";"                        
        INTO WS-CODISIN,WS-MARKETING-REPORT,WS-LAST-UPDATE1,      
        WS-ANNUAL-REPORT,WS-LAST-UPDATE2,WS-STATUTES,             
        WS-LAST-UPDATE3,WS-FULL-BROCHURE,WS-LAST-UPDATE4,         
        WS-SEMI-ANNUAL-REPORT,WS-LAST-UPDATE5,WS-SIMPIE-BROCHURE, 
        WS-LAST-UPDATE6.                                          
     PERFORM WRITE-PARA.                                          
 WRITE-PARA.                                                      
     MOVE SPACES                TO   REG-VA0001W.                 
     MOVE WS-CODISIN            TO   CODISIN.                     
     MOVE WS-MARKETING-REPORT   TO   MARKETING-REPORT.            
     MOVE WS-LAST-UPDATE1       TO   LAST-UPDATE1.                
     MOVE WS-ANNUAL-REPORT      TO   ANNUAL-REPORT.               
     MOVE WS-LAST-UPDATE2       TO   LAST-UPDATE2.                
     MOVE WS-STATUTES           TO   STATUTES.                    
     MOVE WS-LAST-UPDATE3       TO   LAST-UPDATE3.                
     MOVE WS-FULL-BROCHURE      TO   FULL-BROCHURE.               
     MOVE WS-LAST-UPDATE4       TO   LAST-UPDATE4.                
     MOVE WS-SEMI-ANNUAL-REPORT TO   SEMI-ANNUAL-REPORT.          
     MOVE WS-LAST-UPDATE5       TO   LAST-UPDATE5.
     MOVE WS-SIMPIE-BROCHURE    TO   SIMPIE-BROCHURE.
     MOVE WS-LAST-UPDATE6       TO   LAST-UPDATE6.   
     WRITE REG-VA0001W.    

我想在输出文件中获得 10 条记录,但我得到了 11 条记录。重复最后一条记录,输入文件有10条记录。

cobol gnucobol
© www.soinside.com 2019 - 2024. All rights reserved.