在 opencobolile 中读取文本文件

Reading a text file in opencobolile

提问人:Jim French 提问时间:7/25/2023 最后编辑:Jim French 更新时间:7/25/2023 访问量:63

问:

(窗户 11)我正在创建当前正在运行的任务的文本文件,但很难将其读入我的 OPENCOBOLILE 程序。打开很好,但在第一次读取时,我收到错误代码 1000(文件大小错误)。在查看文件时,它似乎是一个带有 crlf 的可变长度文件。我是一名 as/400 Cobol 程序员,几年后又回到了 Cobol,我从未在 Windows 上做过任何 COBOL 编码。任何人都可以就如何设置我的文件选择或环境变量来读取此文件提供任何建议吗?谢谢!


Environment division.
       input-output section.
       file-control.
           select webinput assign to KEYBOARD
                file status is ws-in-status.
           
           select tasklist ASSIGN TO 'g:\temp\tasklist.txt'
                file status is ws-if-status.

       data division.
       file section.
       fd  webinput.
           01 chunk-of-post        pic x(1024).
               
       fd  tasklist.
           01 Ws-Input-Data.
               05  filler          pic x.
               05  ws-id-name      pic x(12).
               05  filler          pic x(1011).

PROCEDURE DIVISION.
           OPEN InPUT tasklist.
               display ws-if-status.
               PERFORM UNTIL WS-EOF='Y'
                   READ tasklist at end
                       display ws-if-status
                       MOVE 'Y' TO WS-EOF
                       NOT AT END DISPLAY ws-value-string
                   END-READ
                END-PERFORM.
           CLOSE tasklist.
           STOP RUN.

在此处输入图像描述

选择 输入 文本 gnucobol

评论

0赞 Simon Sobisch 7/25/2023
不确定“ws-if-status”是如何定义的;它应该是 PIC X(02)。无论如何,您都想使用 .此外,您可能希望切换到 GixIDE,它已得到维护,并且还为 GnuCOBOL 提供了更新的 Windows 二进制文件(对于 OCIDE,您必须自行更新这些二进制文件)。如果有什么有助于得到答案的话:请回答自己,就好像你会向别人解释解决方案和原因一样——这与 StackOverflows Q+A 风格非常匹配(而且你也会有一个公认的答案)。ORGANIZATION IS LINE SEQUENTIAL
0赞 Jim French 7/25/2023
谢谢。我添加了 Line Sequential,现在得到的返回代码是 '10' - eof 。该文件肯定存在并且其中包含数据。思潮?
0赞 Simon Sobisch 7/26/2023
我想它已经完全处理好了,你可能看不到结果;或者您使用旧版本的 GnuCOBOL 并获取 EOF,因为其中没有 1024 的记录。最好的方法是在 OCIDE 之外尝试 - 并可能从 arnoldtrembley.com/GnuCOBOL.htm 更新它
0赞 Jim French 7/26/2023
谢谢。我能够在 Rexx 中轻松做到这一点。能够在 COBOL 中读取可变长度的文件对我来说仍然很有帮助。也许我会尝试编写一个 Rexx 程序来将可变长度文件转换为固定文件。感谢您的帮助。
0赞 Simon Sobisch 7/27/2023
这在 COBOL 中工作正常...因此,如果您感到陷入困境,您可以继续或查看 COBOL 讨论组/邮件列表。对于前者,您可能想前往 sourceforge.net/p/gnucobol/discussion/help

答: 暂无答案