1

I am trying to execute this code:

  ******************************************************************
  * Author:
  * Date:
  * Purpose:
  * Tectonics: cobc
  ******************************************************************
   IDENTIFICATION DIVISION.
   PROGRAM-ID. fuente02.
   ENVIRONMENT DIVISION.
   CONFIGURATION SECTION.
   SPECIAL-NAMES.
       DECIMAL-POINT IS COMMA.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.

       SELECT OPTIONAL CLIENTES ASSIGN TO "./clientes.dat"
              ORGANIZATION INDEXED
              ACCESS MODE DYNAMIC
              RECORD KEY IS ID_CLIENTE
              ALTERNATE KEY CLI_NOMBRE WITH DUPLICATES
              ALTERNATE KEY CLI_ALT_2  WITH DUPLICATES
              STATUS ST-FILE.


   DATA DIVISION.
   FILE SECTION.

   FD  CLIENTES.

   01  REG-CLIENTES.
       03  ID_CLIENTE.
           05  CLI_ID           PIC 9(7).
       03  CLI_SALDO            PIC S9(7)V9(3).
       03  CLI_NOMBRE           PIC X(70).
       03  CLI_DIRECCION        PIC X(80).
       03  CLI_CODPOST          PIC X(10).
       03  CLI_CATEGORIA        PIC X.
       03  CLI_ALT_2.
           05  CLI_CATEGORIA_2  PIC X.
           05  CLI_NOMBRE_2     PIC X(60).
       03  CLI_RAZONSOCIAL      PIC X(60).
       03  FILLER               PIC X(240).


   WORKING-STORAGE SECTION.

   01  ST-FILE   PIC XX.
   01  X         PIC X.

   77  BANDERA   PIC 9.
   01  SALDO-Z   PIC Z(6)9,99.
   01  SALDO-ZZ  PIC ------9,99.



   PROCEDURE DIVISION.
   PABLO.
       PERFORM ABRO-ARCHIVOS.
  *     PERFORM GRABO-DATOS THRU F-GRABO-DATOS.
       PERFORM LEO-DATOS THRU F-LEO-DATOS.
       PERFORM CIERRO-ARCHIVOS.
       STOP RUN.

   ABRO-ARCHIVOS.
       OPEN I-O CLIENTES.
       IF ST-FILE > "07"
          DISPLAY "ERROR ABRIENDO EL ARCHIVO".

   CIERRO-ARCHIVOS.
       CLOSE CLIENTES.

   GRABO-DATOS.
       INITIALIZE REG-CLIENTES.
       MOVE 1 TO CLI_ID.
       MOVE 0 TO CLI_SALDO.
       MOVE "VAR-NOMBRE" TO CLI_NOMBRE.
       MOVE "W-DIRECCION" TO CLI_DIRECCION.

   GRABO-REGISTRO.
       WRITE REG-CLIENTES.
       IF ST-FILE = "99" GO TO GRABO-REGISTRO.
       IF ST-FILE > "07"
          DISPLAY "ERROR GRABANDO EL ARCHIVO"
          ACCEPT X.

   F-GRABO-DATOS.
       EXIT.

   LEO-DATOS.
       INITIALIZE REG-CLIENTES.
       START CLIENTES KEY IS NOT LESS THAN ID_CLIENTE.
       READ CLIENTES NEXT RECORD.
       IF ST-FILE = "99" GO TO LEO-DATOS.
       IF ST-FILE > "07"
          DISPLAY "ERROR LEYENDO EL ARCHIVO".

   MUESTRO-DATOS.
       MOVE -15,58 TO SALDO-ZZ.
       DISPLAY "Id Cliente"  LINE 10 COL 5.
       DISPLAY "Saldo"       LINE 11 COL 5.
       DISPLAY "Nombre"      LINE 12 COL 5.
       DISPLAY "Direccion"   LINE 13 COL 5.
       DISPLAY CLI_ID        LINE 10 COL 30.
       DISPLAY SALDO-ZZ       LINE 11 COL 30.
       DISPLAY CLI_NOMBRE    LINE 12 COL 30.
       DISPLAY CLI_DIRECCION LINE 13 COL 30.
       ACCEPT X LINE 14 COL 70.

   F-LEO-DATOS.
       EXIT.


   END PROGRAM fuente02.

I create the .dat file uncommenting line 59 (PERFORM GRABO-DATOS THRU F-GRABO-DATOS), and creates .dat file, then I try to read this file uncommenting line 60 (PERFORM LEO-DATOS THRU F-LEO-DATOS), and compiles again with

cobc -m fuente02.cbl

but when I execute the .so file, in a linux terminal this doesn't show nothing, even errors. I expect to read the file and show data with the display orders.

I don't know if this needs some extra params or another option, I am starting with gnucobol and is a tortous path at beginning.

enter image description here

enter image description here

enter image description here

Results of cobc:

reuy@hal:~/Documentos$ cobc -W -v fuente02.cbl
cobc (GnuCOBOL) 3.1.2.0
Compilado  Mar 15 2023 22:56:22 Empaquetado  Dec 23 2020 12:04:58     UTC
C version "10.2.1 20210110"
cargando fichero común de configuración «default.conf»
línea de órdenes:   cobc -W -v fuente02.cbl 
preprocesando:  fuente02.cbl -> /tmp/cob2835_0.cob
estado devuelto:    0

Results of cobcrun:

reuy@hal:~/Documentos$ cobcrun -r fuente02
GnuCOBOL 3.1.2.0 configuraci?n de tiempo de ejecuci?n
via  /usr/local/share/gnucobol/config/runtime.cfg

Configuraci?n de CALL
: COB_LOAD_CASE          : not set  
: COB_PHYSICAL_CANCEL    : no       (default)
: COB_PRE_LOAD           : not set  
: COB_STACKTRACE         : s?       (default)
: COB_LIBRARY_PATH       : not set  

Configuraci?n de fichero de E/S
: COB_FILE_PATH          : not set  
: COB_VARSEQ_FORMAT      : not set  
: COB_LS_FIXED           : no       (default)
: COB_LS_NULLS           : no       (default)
: COB_SORT_CHUNK         : 256 KB   (default)
: COB_SORT_MEMORY        : 128 MB   (default)
: COB_SYNC               : no       (default)
: DB_HOME                : not set  

Configuraci?n de E/S de pantalla
: COB_BELL               : not set  
: COB_REDIRECT_DISPLAY   : no       (default)
: COB_SCREEN_ESC         : no       (default)
: COB_SCREEN_EXCEPTIONS  : no       (default)
: COB_TIMEOUT_SCALE      : not set  (1000) 
: COB_INSERT_MODE        : no       (default)
: COB_MOUSE_FLAGS        : 1        (default)
: COB_DISPLAY_PRINT_PIPE : not set  
: COB_DISPLAY_PRINT_FILE : not set  
: COB_DISPLAY_PUNCH_FILE : not set  
: COB_LEGACY             : no       (default)
: COB_EXIT_WAIT          : s?       (default)
: COB_EXIT_MSG           : 'final de programa, presione una tecla para salir
                         : ' (default)

Varias
: COB_DISABLE_WARNINGS   : no       (default)
: COB_ENV_MANGLE         : no       (default)
: COB_COL_JUST_LRC       : s?       (default)
: COB_SET_DEBUG          : no       (default)
: COB_SET_TRACE          : no       (default)
: COB_TRACE_FILE         : not set  
: COB_TRACE_FORMAT       : '%P %S Line: %L' (default)
: COB_DUMP_FILE          : not set  
: COB_DUMP_WIDTH         : 100      (default)
: COB_CURRENT_DATE       : not set  

Configuraci?n del sistema
env: USERNAME               : 'reuy'   (set by LOGNAME)
env: LANG                   : 'es_CO.UTF-8'
: OSTYPE                 : not set  
env: TERM                   : 'xterm-256color'
: LOCALEDIR              : /usr/local/share/locale
: LC_CTYPE               : C
: LC_NUMERIC             : C
: LC_COLLATE             : es_CO.UTF-8
: LC_MESSAGES            : es_CO.UTF-8
: LC_MONETARY            : es_CO.UTF-8
: LC_TIME                : es_CO.UTF-8

[![enter image description here][4]][4]

Results of compile with -ftraceall and export COB_SET_TRACE=1 at runtime.

reuy@hal:~/Documentos$ cobcrun -runtime fuente02
GnuCOBOL 3.1.2.0 configuraci?n de tiempo de ejecuci?n
via  /usr/local/share/gnucobol/config/runtime.cfg

Configuraci?n de CALL
: COB_LOAD_CASE          : not set  
: COB_PHYSICAL_CANCEL    : no       (default)
: COB_PRE_LOAD           : not set  
: COB_STACKTRACE         : s?       (default)
: COB_LIBRARY_PATH       : not set  

Configuraci?n de fichero de E/S
: COB_FILE_PATH          : not set  
: COB_VARSEQ_FORMAT      : not set  
: COB_LS_FIXED           : no       (default)
: COB_LS_NULLS           : no       (default)
: COB_SORT_CHUNK         : 256 KB   (default)
: COB_SORT_MEMORY        : 128 MB   (default)
: COB_SYNC               : no       (default)
: DB_HOME                : not set  

Configuraci?n de E/S de pantalla
: COB_BELL               : not set  
: COB_REDIRECT_DISPLAY   : no       (default)
: COB_SCREEN_ESC         : no       (default)
: COB_SCREEN_EXCEPTIONS  : no       (default)
: COB_TIMEOUT_SCALE      : not set  (1000) 
: COB_INSERT_MODE        : no       (default)
: COB_MOUSE_FLAGS        : 1        (default)
: COB_DISPLAY_PRINT_PIPE : not set  
: COB_DISPLAY_PRINT_FILE : not set  
: COB_DISPLAY_PUNCH_FILE : not set  
: COB_LEGACY             : no       (default)
: COB_EXIT_WAIT          : s?       (default)
: COB_EXIT_MSG           : 'final de programa, presione una tecla para salir
                         : ' (default)

Varias
: COB_DISABLE_WARNINGS   : no       (default)
: COB_ENV_MANGLE         : no       (default)
: COB_COL_JUST_LRC       : s?       (default)
: COB_SET_DEBUG          : no       (default)
env: COB_SET_TRACE          : s?      
: COB_TRACE_FILE         : not set  
: COB_TRACE_FORMAT       : '%P %S Line: %L' (default)
: COB_DUMP_FILE          : not set  
: COB_DUMP_WIDTH         : 100      (default)
: COB_CURRENT_DATE       : not set  

Configuraci?n del sistema
env: USERNAME               : 'reuy'   (set by LOGNAME)
env: LANG                   : 'es_CO.UTF-8'
: OSTYPE                 : not set  
env: TERM                   : 'xterm-256color'
: LOCALEDIR              : /usr/local/share/locale
: LC_CTYPE               : C
: LC_NUMERIC             : C
: LC_COLLATE             : es_CO.UTF-8
: LC_MESSAGES            : es_CO.UTF-8
: LC_MONETARY            : es_CO.UTF-8
: LC_TIME                : es_CO.UTF-8

Source: 'fuente02.cbl'
Program-Id:  fuente02
Program-Id:  fuente02             Entry: fuente02                            Line:     50
Program-Id:  fuente02         Paragraph: PABLO                           Line:     51
Program-Id:  fuente02                    PERFORM                         Line:     52
Program-Id:  fuente02         Paragraph: ABRO-ARCHIVOS                   Line:     58
Program-Id:  fuente02                    OPEN                            Line:     59
Program-Id:  fuente02                    IF                              Line:     60
Program-Id:  fuente02                    PERFORM                         Line:     54
Program-Id:  fuente02         Paragraph: LEO-DATOS                       Line:     88
Program-Id:  fuente02                    INITIALIZE                      Line:     89
Program-Id:  fuente02                    START                           Line:     90
Program-Id:  fuente02                    READ                            Line:     91
Program-Id:  fuente02                    IF                              Line:     92
Program-Id:  fuente02                    IF                              Line:     95
Program-Id:  fuente02         Paragraph: MUESTRO-DATOS                   Line:     99
Program-Id:  fuente02                    MOVE                            Line:    100
Program-Id:  fuente02                    DISPLAY                         Line:    101
Program-Id:  fuente02                    DISPLAY                         Line:    102
Program-Id:  fuente02                    DISPLAY                         Line:    103
Program-Id:  fuente02                    DISPLAY                         Line:    104
Program-Id:  fuente02                    DISPLAY                         Line:    105
Program-Id:  fuente02                    DISPLAY                         Line:    106
Program-Id:  fuente02                    DISPLAY                         Line:    107
Program-Id:  fuente02                    DISPLAY                         Line:    108
Program-Id:  fuente02                    ACCEPT                          Line:    109
Program-Id:  fuente02         Paragraph: F-LEO-DATOS                     Line:    111
Program-Id:  fuente02                    EXIT                            Line:    112
Program-Id:  fuente02                    PERFORM                         Line:     55
Program-Id:  fuente02         Paragraph: CIERRO-ARCHIVOS                 Line:     64
Program-Id:  fuente02                    CLOSE                           Line:     65
Program-Id:  fuente02                    STOP RUN                        Line:     56
reymagnus
  • 327
  • 2
  • 17
  • What about checking its manual? An easy accessible way would be https://gnucobol.sourceforge.io/doc/gnucobol.html (though the Programmer's Guide is the better complete read). `cobc` is a compiler, it will only "display" something if you have coding issues (you may see some possible ones when adding `-W`) or you ask it to (add `-v` command line option). After compiling - what you did - you seem to want to run that, do so with `cobcrun fuente02` afterwards. – Simon Sobisch Mar 16 '23 at 21:15
  • With cobcrun doesn't works. I did upload some screenshots from execution and files. – reymagnus Mar 16 '23 at 21:55
  • Please _compile_ with `cobcrun -W -v fuente02.bl` - so we know if this part is working.... Maybe add `-ftraceall` to have tracing code in and then execute with `COB_SET_TRACE=1 cobcrun fuente02`. – Simon Sobisch Mar 17 '23 at 06:23
  • I'd updated main question with cobc and cobc results. I suspect some COB parameter is not setted for display or in runtime.cfg. cobcrun fuente02 COB_SET_TRACE=1 is not returning nothing. – reymagnus Mar 17 '23 at 17:05
  • Ok obviously the compiler works, as now shown in the question. To enable teaching you need to explicit compile with -ftraceall and export COB_SET_TRACE=1 at runtime. – Simon Sobisch Mar 18 '23 at 06:49
  • Done. I'd compiled with -ftraceall and export param at runtime. – reymagnus Mar 20 '23 at 05:11
  • Could it be the `LANG=C cobc --info | grep screen` shows no extended screenio being available in your GnuCOBOL installation? – Simon Sobisch Mar 20 '23 at 13:43
  • It returns: extended screen I/O : not found – reymagnus Mar 22 '23 at 13:00
  • Is there any way to correct this? – reymagnus Mar 22 '23 at 19:18
  • 1
    This seems like a self-built GnuCOBOL ("/usr/local"), so just re-run the configure + make process with having curses headers installed (possibly request that explicit with `configure --with-curses=ncursesw`. See the distributed DEPENDENCIES file to know a bit more about this. – Simon Sobisch Mar 22 '23 at 19:53
  • Yeah, that was It Simon, I'd re-maked and reinstalled and shows the display instruction for the program, only I have another question, XML I/O handler is essential? what library I need to install? – reymagnus Mar 23 '23 at 13:16
  • 1
    ...this is a totally topic drift which is not matching SO's Q+A... You may want to visit https://sourceforge.net/p/gnucobol/discussion/help/ ... To answer the question: If you don't want to do `XML GENERATE`, then you don't need the xml one (similar for `JSON GENERATE`). And depending on which OS you install the package is likely named libxml2-dev or similar (and the DEPENDENCIES file does hint at this). – Simon Sobisch Mar 23 '23 at 16:40

0 Answers0