标签: gnucobol

嵌套在COBOL中执行循环?

为什么我不能在COBOL中执行这个嵌套的执行循环?

如果我把END-PERFORM.在任何一行中,比我在EXIT PROGRAM之前的最后一行更快 - 它有效.但我需要程序每次都显示INPUT C值.在外部执行循环中.它让我疯狂.

PROCEDURE DIVISION USING INPUTC CIPHER.
COMPUTE CIPHERMAX = CIPHER.
MULTIPLY -1 BY CIPHER
---> PERFORM VARYING CIPHER FROM 0 BY 1
UNTIL CIPHERMAX = CIPHER
    DISPLAY 'This is loop number: ' CIPHER
    INSPECT INPUTC CONVERTING
    "avcdefghijklmnopqrstuvwxyz" to "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    COMPUTE CONVERTNUM = FUNCTION MOD (CIPHER, 26)
    INSPECT FUNCTION REVERSE(INPUTC) TALLYING LENGTHNUM FOR LEADING SPACES
    COMPUTE LENGTHNUM = LENGTH OF CIPHER - LENGTHNUM

 ---> PERFORM UNTIL SENTRY = LENGTHNUM

            IF ((FUNCTION ORD(INPUTC(SENTRY:1)) + CONVERTNUM) > (FUNCTION …
Run Code Online (Sandbox Code Playgroud)

cobol cobol85 gnucobol

4
推荐指数
1
解决办法
4003
查看次数

COBOL:简单的文件读取问题

我有一个非常基本的 COBOL 程序,它读取文件input.dat并简单地在控制台中输出它。该input.dat文件如下所示:

John                Johnson             
Peter               Peterson            
Juliette            Julietteson         
Natasha             Natashason          
Justin              Justinson           
Run Code Online (Sandbox Code Playgroud)

它没有正确显示在这里,但我肯定有20 chars名字和20 chars姓氏。

这是我的 COBOL 程序:

    IDENTIFICATION DIVISION.
    PROGRAM-ID. ATEST4.
    ENVIRONMENT DIVISION.
    INPUT-OUTPUT SECTION.
    FILE-CONTROL.
        SELECT INPUTFILE ASSIGN TO "files/input.dat".
    DATA DIVISION.
    FILE SECTION.
    FD  INPUTFILE LABEL RECORDS ARE OMITTED.
    01  INPUTRECORD              PIC X(40).    
    WORKING-STORAGE SECTION.
    01  FILE-STATUS              PIC 9 VALUE 0.
    PROCEDURE DIVISION.
    001-MAIN.
        OPEN INPUT INPUTFILE.
        PERFORM 002-READ UNTIL FILE-STATUS = 1.
        CLOSE INPUTFILE.
        STOP RUN.
            
    002-READ. …
Run Code Online (Sandbox Code Playgroud)

cobol gnucobol

4
推荐指数
1
解决办法
4105
查看次数

COBOL中的数据类型

我写了下面的程序,我很困惑,为什么当我编译程序时,我得到一个错误,说A-COL(1,1)不是数值,而显示A-COL(1,1)给我1.

   IDENTIFICATION DIVISION.
   PROGRAM-ID. TEST1.
   DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 DIFF PIC 9(3).
       01 ARRAY.
           05 A-ROW OCCURS 99 TIMES.
               10 A-COL OCCURS 2 TIMES.
                   15 TABLE-CONTENT PIC 9(3).

   PROCEDURE DIVISION.
       MOVE 1 TO A-COL(1,1).
       MOVE 2 TO A-COL(2,1).
       DISPLAY A-COL(1,1).
       COMPUTE DIFF = A-COL(1,1) - A-COL(2,1).
       DISPLAY DIFF.
   STOP RUN.
Run Code Online (Sandbox Code Playgroud)

cobol gnucobol

4
推荐指数
1
解决办法
278
查看次数

从COBOL中的文件中读取浮点数

我在文件中有定点数字,每行一个,这种格式S9(6)V9(2)但是当它们实际被读取时,我non numeric在尝试将它们放入数学运算时遇到错误.更重要的是,当我尝试在程序中显示它们时,在文件中写为567123.45的数字将保存在变量中作为+567123.04.例如,文件123.45中的数字在变量中保存为+123.45.00,并且'WS-VALUE' not numeric: '123.45 0'在数学运算期间会引发以下错误.这是为什么?我正在使用OpenCobolIDE 4.7.4 for Windows.

编辑:文件具有由新行分隔的以下格式的记录(READ记录后的操作记录读取):

  01 WS-OPERATION.
     05 WS-ID PIC A(2).
     05 WS-CLIENT PIC 9(5).
     05 WS-COUNTRY PIC A(4).
     05 WS-VALUE PIC S9(6)V9(2). 
Run Code Online (Sandbox Code Playgroud)

cobol fixed-point gnucobol

4
推荐指数
1
解决办法
391
查看次数

从压缩十进制字段中拆分数字

我的文件上有一个7位数的压缩十进制字段.如何定义将提取/分离这7个数字的数据项?

例如,我希望一个数据项中的前两位数字和另一个数据项中的其他数字,所以我可以稍后操作它们.

cobol cobol85 gnucobol cobol.net

4
推荐指数
1
解决办法
681
查看次数

在 ubuntu 上使用 gnu cobol 编译 Windows (.exe) 可执行文件

我需要将我在 .cobc 文件中编写的程序编译为 Windows 可执行文件。该文件名为 main.cobc
使用以下命令进行编译: cobc -x -free *.cobc -o main
使其成为 Linux 可执行文件,这是可以的,但不能直接在 Windows 上运行。
我在我的 linux ubuntu 虚拟机上安装了 gnucobol (OpenCOBOL)。
请帮忙。有没有办法以与 Windows 兼容的方式编译它?

提前致谢!

linux cross-compiling gnucobol

4
推荐指数
1
解决办法
1141
查看次数

COBOL 中的命令等待?

COBOL 中是否有一种“等待”功能?我写了一个计算器,为了让它更 50 多岁,我打印了“计算”。“计算..” ecc 例如:

                   DISPLAY "SECONDO NUMERO"
                   ACCEPT B
                   COMPUTE C= A * B
                          DISPLAY "Computing"
                          DISPLAY "Computing."
                          DISPLAY "Computing.."
                          DISPLAY "Computing..."
                          DISPLAY "Computing...."
                          DISPLAY "Computing....."
                          DISPLAY "Computing......"
                          DISPLAY A "x" B " FA..."
                          DISPLAY C
Run Code Online (Sandbox Code Playgroud)

现在,有没有办法在我放置“计算”部分的 COBOL 上稍微延迟(半秒)?我为这个项目创建了一个 github repo ( https://github.com/aIDserse/Super-utility-Submachine-COBOL-CALCULATOR ),查看它(参考 1.3 版)以获得完整的代码(可能会传播它哈哈) . 谢谢!!!

cobol gnucobol

4
推荐指数
1
解决办法
895
查看次数

何时在COBOL中使用圆点?

我对COBOL完全不熟悉,我想知道:

似乎没有区别

DISPLAY "foo"
Run Code Online (Sandbox Code Playgroud)

DISPLAY "foo".
Run Code Online (Sandbox Code Playgroud)

一条线末端的点实际上做了什么?

我应该何时使用/避免它?

cobol cobol85 gnucobol

3
推荐指数
2
解决办法
6885
查看次数

在COBOL中启动子进程

如何在GnuCOBOL中启动子进程?

在Node.js的,我们可以使用spawnexec启动子进程:

var proc = require("child_process").spawn("ls", ["-l"]);
proc.stdout.on("data", function (chunk) {
  console.log(chunk);
});

// or

var proc = require("child_process").exec("ls -l"], function (err, stdout, stderr) {
   ...
});
Run Code Online (Sandbox Code Playgroud)

上面的两个例子都运行ls -l(列出文件和目录).如何在COBOL中实现同样的目标?

cobol child-process gnucobol

3
推荐指数
1
解决办法
199
查看次数

如何在Cobol中调用另一个程序?

我正在使用屏幕部分在Cobol中开发一个系统,但是当我在另一个程序中创建的菜单中选择一个选项时,无法调用客户注册程序。我正在使用带有GnuCOBOL编译器的opencobol。

CALL "ANOTHER-PROGRAM"
     USING BY CONTENT SUBMENU-IN-WS
CANCEL "ANOTHER-PROGRAM"
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

libcob:找不到模块“ ANOTHER-PROGRAM”。

如何使用opencobol在Cobol中调用另一个程序?我是否需要在ANOTHER-PROGRAM甚至不使用链接部分中使用链接部分?

cobol gnucobol

3
推荐指数
1
解决办法
129
查看次数