Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   GnuCOBOL (OpenCOBOL) (https://www.cobolforo.es/forumdisplay.php?f=90)
-   -   No puedo crear un archivo indexado (https://www.cobolforo.es/showthread.php?t=1568)

CHITOBLA 25 de noviembre de 2022 01:33

Joseg, buenas noches.
Perdón por ser un "hinchapelotas" (esto es una frase muy común aquí en Argentina) y pido disculpas si alli no se usa o molesta.

Seguí tu consejo y me anime a hacer lo que me sugeriste y te paso a detallar todo lo que hice
Siguiendo la guía de compilación:

Guía de compilación para MinGW GnuCOBOL 3.1.2 de 64 bits en formato PDF.

Instale el software:
GnuCOBOL 3.1.2 (23 de diciembre de 2020) MSYS2 de 64 bits GC312-BDB-M64-rename-7z-to-exe.7z -- MinGW MSYS2 GnuCOBOL 3.1.2 de 64 bits con ncurses y Berkeley DataBase. (70,6 Megabytes).


Con lo cual creo debo tener un GNUCOBOL de maravilla, fui haciendo todo lo que la guía decía y probaba y termine OK.

EL PROBLEMA ES QUE AHORA EL VISUAL STUDIO no me compila y les copio lo que me sale:
__________________________________________________ ______
PS C:\COBOL> cobc -x prueba.cob
cobc : El término 'cobc' no se reconoce como nombre de un cmdlet, función,
archivo de script o programa ejecutable. Compruebe si escribió
correctamente el nombre o, si incluyó una ruta de acceso, compruebe que dicha ruta es correcta e inténtelo de nuevo.
En línea: 1 Carácter: 1
+ cobc -x prueba.cob
+ ~~~~
+ CategoryInfo : ObjectNotFound: (cobc:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
__________________________________________________ ______

El PATH esta correcto, lo he revisado y los 4 items apuntan al directorio de GNUCOBOL.

Quise ver si algo había sucedido luego de la instalación de todo lo detalle mas arriba con el OPEN COBOL y compila perfectamente como lo hacia antes, pero sigue sin aceptar como por ejemplo la SCREEN SECTION, o sea que no acepta todo lo grafico pero si funciona para generar ARCHIVOS INDEXADOS sin problema.

Analizando mucho y viendo las direcciones a donde apuntan el VISUAL STUDIO apuntando al directorio GNUCOBOL y el OPEN COBOL que apunta a un directorio totalmente distinto: "c:/user/chito" y es alli donde guarda los programas y los archivos.

Estuve también mirando a donde apunta la configuración del OPEN COBOL en sus 4 items y por ejemplo les pongo uno de ellos:
__________________________________________________ ___
"COB_CONFIG_DIR"
C:\Program Files (x86)\OpenCobolIDE\GnuCOBOL\config
__________________________________________________ ___
Cuando instale por primera vez el OPEN no tuve en cuenta nada, lo instale, lo ejecute y vi que funcionaba.
Creo que donde esta apuntando el ejemplo que les puse no tiene nada que ver con donde apunta el VISUAL que tiene un directorio particular en C:

Joseg, te pregunto, PUEDO CAMBIAR A DONDE APUNTA EL OPEN para que apunte igual que lo hace el VISUAL?????.
No me anime a probar porque no quiero desarmar todo lo que anda (OPEN) o tengo que hacer que el VISUAL apunte a donde apunta el OPEN???.

Vuelvo a pedir disculpas por las molestias y aguardo comentarios de alguien del foro.

Un gran abrazo para todos.
Gracias.

Joseg 25 de noviembre de 2022 10:46

Cita:

Citación del post de CHITOBLA (Mensaje 8414)
Joseg, buenas noches.
Perdón por ser un "hinchapelotas" (esto es una frase muy común aquí en Argentina) y pido disculpas si alli no se usa o molesta.

Seguí tu consejo y me anime a hacer lo que me sugeriste y te paso a detallar todo lo que hice
Siguiendo la guía de compilación:

Guía de compilación para MinGW GnuCOBOL 3.1.2 de 64 bits en formato PDF.

Instale el software:
GnuCOBOL 3.1.2 (23 de diciembre de 2020) MSYS2 de 64 bits GC312-BDB-M64-rename-7z-to-exe.7z -- MinGW MSYS2 GnuCOBOL 3.1.2 de 64 bits con ncurses y Berkeley DataBase. (70,6 Megabytes).


Con lo cual creo debo tener un GNUCOBOL de maravilla, fui haciendo todo lo que la guía decía y probaba y termine OK.

EL PROBLEMA ES QUE AHORA EL VISUAL STUDIO no me compila y les copio lo que me sale:
__________________________________________________ ______
PS C:\COBOL> cobc -x prueba.cob
cobc : El término 'cobc' no se reconoce como nombre de un cmdlet, función,
archivo de script o programa ejecutable. Compruebe si escribió
correctamente el nombre o, si incluyó una ruta de acceso, compruebe que dicha ruta es correcta e inténtelo de nuevo.
En línea: 1 Carácter: 1
+ cobc -x prueba.cob
+ ~~~~
+ CategoryInfo : ObjectNotFound: (cobc:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
__________________________________________________ ______

El PATH esta correcto, lo he revisado y los 4 items apuntan al directorio de GNUCOBOL.

Quise ver si algo había sucedido luego de la instalación de todo lo detalle mas arriba con el OPEN COBOL y compila perfectamente como lo hacia antes, pero sigue sin aceptar como por ejemplo la SCREEN SECTION, o sea que no acepta todo lo grafico pero si funciona para generar ARCHIVOS INDEXADOS sin problema.

Analizando mucho y viendo las direcciones a donde apuntan el VISUAL STUDIO apuntando al directorio GNUCOBOL y el OPEN COBOL que apunta a un directorio totalmente distinto: "c:/user/chito" y es alli donde guarda los programas y los archivos.

Estuve también mirando a donde apunta la configuración del OPEN COBOL en sus 4 items y por ejemplo les pongo uno de ellos:
__________________________________________________ ___
"COB_CONFIG_DIR"
C:\Program Files (x86)\OpenCobolIDE\GnuCOBOL\config
__________________________________________________ ___
Cuando instale por primera vez el OPEN no tuve en cuenta nada, lo instale, lo ejecute y vi que funcionaba.
Creo que donde esta apuntando el ejemplo que les puse no tiene nada que ver con donde apunta el VISUAL que tiene un directorio particular en C:

Joseg, te pregunto, PUEDO CAMBIAR A DONDE APUNTA EL OPEN para que apunte igual que lo hace el VISUAL?????.
No me anime a probar porque no quiero desarmar todo lo que anda (OPEN) o tengo que hacer que el VISUAL apunte a donde apunta el OPEN???.

Vuelvo a pedir disculpas por las molestias y aguardo comentarios de alguien del foro.

Un gran abrazo para todos.
Gracias.


Parece que é apenas um problema da PATH !

Ver estes ficheiros:
VScobc.cmd e VScobcrun.cmd

sugestão: Faça testes pela linha de comandos.
Não uso o Visual Studio, mas já fiz testes no passado e a única coisa que é necessária é que: cobc.exe e cobcrun.exe tem que estar na path ou seja toda a pasta \bin

CHITOBLA 25 de noviembre de 2022 23:13

Hola Joseg, gracias por tu sugerencia.
Voy a revisar una vez mas las direcciones y luego te comento si he logrado compilar.
Un abrazo y que pases muy buen fin de semana.
Gracias.

CHITOBLA 27 de noviembre de 2022 02:04

2 Archivos Adjunto(s)
Joseg, como estas.
Acabo de revisar las direcciones a donde apuntaban las VARIABLES del SISTEMA y efectivamente COMPILA SIN PROBLEMAS.
Gracias por tu sugerencia.

Pero...... vuelvo al inicio del problema NO PUEDO ABRIR ARCHIVOS INDEXADOS.

Te voy a mandar dos anexos en formato txt para que veas como compile el programa, uno sin apuntar a ningún directorio y el otro apuntando a donde debería estar.

Es evidente que tengo un problema de DIRECCIONAMIENTO, el compilador funciona perfectamente porque esta apuntando a la dirección correcta donde instalé el GNU (en C:) y un archivo de trabajo que llamo COBOL que esta en C:

Pero cuando trabajo con el OPEN sin problema de ARCHIVOS, apunta a otro directorio: C:user/chito y alli están todos los programas que generé con el OPEN y los archivos, el SECUENCIAL y el INDEXADO.

Lamentablemente para mi no se que mas hacer ni que mas trasmitir y pido disculpas a TODO EL FORO por molestar y estar constantemente pidiendo ayuda.

Si es un problema del GNU, les recuerdo que hice todo lo que me sugirieron con el manual correspondiente donde supongo se cargo el "manejador de Archivos Indexados" que NO SE COMO COMPROBAR si es asi o no (aparentemente no porque no funciona lo que compilo).

Un gran abrazo a todos, perdón por las molestias y quedo a la espera de noticias de Uds.
GRACIAS.

luisbago 28 de noviembre de 2022 18:49

3 Archivos Adjunto(s)
Usando opencobolide la última versión

comando para ver si soporta archivos indexados, en CMD
[ATTACH=CONFIG]828[/ATTACH]

resultado
[ATTACH=CONFIG]829[/ATTACH]

confirmando que soporta archivos indexados vsam

Código COBOL:
  1.             IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. PRUEBA10.
  3.        ENVIRONMENT DIVISION.
  4.  
  5.        INPUT-OUTPUT SECTION.
  6.      *Archivo fÃ*sico en modo dinámico.
  7.        FILE-CONTROL.
  8.        SELECT EMPLEADOS-ARCHIVO
  9.          ASSIGN TO "EMPINX"
  10.        ORGANIZATION IS INDEXED
  11.        RECORD KEY IS EMPLEADOS-ID
  12.        ACCESS MODE IS DYNAMIC
  13.        FILE STATUS IS FS-ST.
  14.  
  15.        DATA DIVISION.
  16.        FILE SECTION.
  17.      *Archivo lógico.
  18.        FD EMPLEADOS-ARCHIVO.
  19.            01 EMPLEADOS-REGISTRO.
  20.              05 EMPLEADOS-ID PIC 9(3).
  21.              05 EMPLEADOS-NOMBRE PIC X(25).
  22.              05 EMPLEADOS-APELLIDOS PIC X(35).
  23.  
  24.  
  25.        WORKING-STORAGE SECTION.
  26.        01  IDENTIFICADOR PIC X(36)
  27.            VALUE "INTRODUCE UN ID DEL NUEVO EMPLEADO: ".
  28.        01  NOMBRE PIC X(33)
  29.            VALUE "INTRODUCE UN NOMBRE DE EMPLEADO: ".
  30.        01  APELLIDOS PIC X(25)
  31.            VALUE "INTRODUCE LOS APELLIDOS: ".
  32.  
  33.  
  34.        77  FS-ST PIC 99.
  35.        77  SI-NO PIC X.
  36.        77  ENTRADA PIC X.
  37.  
  38.  
  39.        PROCEDURE DIVISION.
  40.        MAIN-LOGIC SECTION.
  41.  
  42.        PROGRAM-BEGIN.
  43.        PERFORM PROCEDIMIENTO-DE-APERTURA.
  44.        MOVE "S" TO SI-NO.
  45.        PERFORM AGREGAR-REGISTROS
  46.        UNTIL SI-NO = "N".
  47.        PERFORM PROCEDIMIENTO-DE-CIERRE.
  48.  
  49.        FINALIZA-PROGRAMA.
  50.        STOP RUN.
  51.  
  52.        PROCEDIMIENTO-DE-APERTURA.
  53.        OPEN I-O EMPLEADOS-ARCHIVO.
  54.         DISPLAY "APERTURA: " FS-ST.
  55.  
  56.  
  57.        PROCEDIMIENTO-DE-CIERRE.
  58.        CLOSE EMPLEADOS-ARCHIVO.
  59.          DISPLAY "CERRAR" FS-ST.
  60.  
  61.        AGREGAR-REGISTROS.
  62.        MOVE "N" TO ENTRADA.
  63.  
  64.        PERFORM OBTENER-CAMPOS UNTIL ENTRADA = "S".
  65.  
  66.        PERFORM ESCRIBIR-REGISTRO.
  67.          PERFORM REINICIAR.
  68.  
  69.        OBTENER-CAMPOS.
  70.        MOVE 0 TO EMPLEADOS-ID.
  71.        MOVE SPACE TO EMPLEADOS-NOMBRE.
  72.        MOVE SPACE TO EMPLEADOS-APELLIDOS.
  73.  
  74.        DISPLAY IDENTIFICADOR WITH NO ADVANCING
  75.        ACCEPT EMPLEADOS-ID.
  76.  
  77.        DISPLAY NOMBRE WITH NO ADVANCING
  78.        ACCEPT EMPLEADOS-NOMBRE.
  79.        DISPLAY APELLIDOS WITH NO ADVANCING
  80.        ACCEPT EMPLEADOS-APELLIDOS.
  81.  
  82.        MOVE "S" TO ENTRADA.
  83.        IF  EMPLEADOS-NOMBRE = SPACE
  84.        MOVE "N" TO ENTRADA.
  85.  
  86.  
  87.        ESCRIBIR-REGISTRO.
  88.        WRITE EMPLEADOS-REGISTRO.
  89.        DISPLAY "GRABAR: " FS-ST.
  90.           IF FS-ST EQUAL 22
  91.         DISPLAY "REGISTRO YA EXISTE, REVISE Y VUELVA A INGRESAR OTRO".
  92.         PERFORM REINICIAR.
  93.  
  94.        REINICIAR.
  95.        DISPLAY "¿PARA MAS REGISTROS PULSE -S- O -N- PARA TERMINAR: "
  96.             WITH NO ADVANCING
  97.        ACCEPT SI-NO.
  98.        IF SI-NO = "s" OR "S"
  99.            PERFORM AGREGAR-REGISTROS
  100.        ELSE
  101.             PERFORM PROCEDIMIENTO-DE-CIERRE
  102.            stop run.

leer el resultado
Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. CAPITULO-27.
  3.        ENVIRONMENT DIVISION.
  4.        INPUT-OUTPUT SECTION.
  5.        FILE-CONTROL.
  6.      *Archivo físico en modo dinámico.
  7.        SELECT EMPLEADOS-ARCHIVO
  8.        ASSIGN TO "EMPINX"
  9.        ORGANIZATION IS INDEXED
  10.        RECORD KEY IS EMPLEADOS-ID
  11.        ACCESS MODE IS DYNAMIC.
  12.        DATA DIVISION.
  13.        FILE SECTION.
  14.      *Archivo lógico.
  15.        FD EMPLEADOS-ARCHIVO.
  16.        
  17.            01 EMPLEADOS-REGISTRO.
  18.              05 EMPLEADOS-ID PIC 9(3).
  19.              05 EMPLEADOS-NOMBRE PIC X(25).
  20.              05 EMPLEADOS-APELLIDOS PIC X(35).
  21.            
  22.        WORKING-STORAGE SECTION.
  23.        77  LEE-TODO             PIC X.
  24.        PROCEDURE DIVISION.
  25.        EMPIEZA-PROGRAMA.
  26.        PERFORM PROCEDIMIENTO-DE-APERTURA.
  27.        MOVE "0" TO LEE-TODO.
  28.        PERFORM LEE-SIGUIENTE-REGISTRO.
  29.          IF LEE-TODO = "1"
  30.            DISPLAY "No se encontraron registros en el archivo."
  31.              ELSE
  32.                PERFORM MUESTRA-CAMPOS
  33.                UNTIL LEE-TODO = "1".
  34.                PERFORM PROCEDIMIENTO-DE-CIERRE.
  35.                FINALIZA-PROGRAMA.
  36.                STOP RUN.
  37.                PROCEDIMIENTO-DE-APERTURA.
  38.                OPEN I-O EMPLEADOS-ARCHIVO.
  39.                PROCEDIMIENTO-DE-CIERRE.
  40.                CLOSE EMPLEADOS-ARCHIVO.
  41.                MUESTRA-CAMPOS.
  42.                DISPLAY "ID: " EMPLEADOS-ID
  43.              " Nombre: " EMPLEADOS-NOMBRE " Apellidos: "
  44.              EMPLEADOS-APELLIDOS.
  45.              PERFORM LEE-SIGUIENTE-REGISTRO.
  46.              LEE-SIGUIENTE-REGISTRO.
  47.              READ EMPLEADOS-ARCHIVO NEXT RECORD
  48.              AT END MOVE "1" TO LEE-TODO.
  49.        END PROGRAM CAPITULO-27.

Resultado de leer el archivo indexado
[ATTACH=CONFIG]830[/ATTACH]
:silba:

Joseg 28 de noviembre de 2022 19:29

Cita:

Citación del post de CHITOBLA (Mensaje 8420)
Joseg, como estas.
Acabo de revisar las direcciones a donde apuntaban las VARIABLES del SISTEMA y efectivamente COMPILA SIN PROBLEMAS.
Gracias por tu sugerencia.

Pero...... vuelvo al inicio del problema NO PUEDO ABRIR ARCHIVOS INDEXADOS.

Te voy a mandar dos anexos en formato txt para que veas como compile el programa, uno sin apuntar a ningún directorio y el otro apuntando a donde debería estar.

Es evidente que tengo un problema de DIRECCIONAMIENTO, el compilador funciona perfectamente porque esta apuntando a la dirección correcta donde instalé el GNU (en C:) y un archivo de trabajo que llamo COBOL que esta en C:

Pero cuando trabajo con el OPEN sin problema de ARCHIVOS, apunta a otro directorio: C:user/chito y alli están todos los programas que generé con el OPEN y los archivos, el SECUENCIAL y el INDEXADO.

Lamentablemente para mi no se que mas hacer ni que mas trasmitir y pido disculpas a TODO EL FORO por molestar y estar constantemente pidiendo ayuda.

Si es un problema del GNU, les recuerdo que hice todo lo que me sugirieron con el manual correspondiente donde supongo se cargo el "manejador de Archivos Indexados" que NO SE COMO COMPROBAR si es asi o no (aparentemente no porque no funciona lo que compilo).

Un gran abrazo a todos, perdón por las molestias y quedo a la espera de noticias de Uds.
GRACIAS.

Fui compilar com esta versão:https://www.arnoldtrembley.com/GC32-...e-7z-to-exe.7z
e executa sem problema.
Como é um ficheiro indexado sugeria:
Código COBOL:
  1. OPEN I-O
(leitura escrita) em substituição de :
Código COBOL:
  1.  OPEN OUTPUT
(apenas escrita).

Se o ficheiro não existe
Código COBOL:
  1. SELECT OPTIONAL ...
(mas tanto open output como open i-o cria se não existe).

Se continuar a ter problemas experimente o outro sistema de ficheiros indexados:
https://www.arnoldtrembley.com/GC312...e-7z-to-exe.7z

A pasta a onde esta a tentar criar o ficheiro tem permissões de escrita?!

CHITOBLA 28 de noviembre de 2022 23:32

Joseg, JCantero, muchas gracias por vuestro tiempo y ayuda.
Joseg gracias al Archivo 829 que me mandaste, hice lo mismo que tu.
Fui al directorio C:GNUCOBOL/bin e hice cobc - i y descubri el problema que tengo y se los adjunto para que lo puedan ver.

Fijense lo que dice sobre la opción ARCHIVOS INDEXADOS
sequential file handler : built-in
indexed file handler : disabled
mathematical library : GMP
XML library : disabled
JSON library : cjson

Como ven lo tengo DESABILITADO, por esto no los puede generar y si puede generar LOS SECUENCIALES.
Como ven tambien tengo DESABILiTADO el XML librery lo cual no se si tiene alguna influencia.
Alguno tiene una idea de como puedo SETEAR esta alternativa para que se vea como me lo mando JOSEG VSAM.

Como ven el PROBLEMA no esta en el programa SINO EN EL MOTOR DE GNU que ponga lo que ponga no va a funcionar.

Todo esto que he escrito yo y Uds. ya se parece a una película de suspenso pero creo que hemos llegado a individualizar al ASESINO.

Ahora solo falta si me pueden ayudar a que cambie el STATUS de las variables . :bien:
No creo que haga falta que mande mas información sobre lo que se ve en C:GNUCOBOL/bin cobc - i
Si lo necesitan se los mando.
Un gran abrazo y aguardo sus sugerencias sobre que hacer para que el problema que tengo quede resuelto.
GRACIAS.
SALUDOS a TODOS.

CHITOBLA 28 de noviembre de 2022 23:58

1 Archivos Adjunto(s)
Adjunto lo mismo que me mandaron como ARCHIVO 829
Gracias

Joseg 29 de noviembre de 2022 16:41

1 Archivos Adjunto(s)
Cita:

Citación del post de CHITOBLA (Mensaje 8430)
Adjunto lo mismo que me mandaron como ARCHIVO 829
Gracias

[ATTACH=CONFIG]832[/ATTACH]

Una vez que se haya ejecutado el archivo "set_env.cmd", todo el sistema DEBE estar operativo

JCantero 29 de noviembre de 2022 19:25

@Joseg, yo lo he probado y funciona.

- - - Updated - - -

De cualquier forma, a mi personalmente me gusta mas el CobolIde para windows.

Para linux GNUopen


La franja horaria es GMT +2. Ahora son las 04:55.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.