Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol COBOL - General
COBOL - General Discusiones de temática general sobre el lenguaje COBOL y todo lo relacionado con él.
 
Respuesta
 
Herramientas

  #1
Antiguo 17 de marzo de 2023, 11:27
dariodr
Forero
Última Actividad 20.09.2026 10:04
Posts Posts: 57
Likes enviados Enviados: 17
Likes recibidos Recibidos: 11
Timido Leer en forma horizontal
0 Inactivo Inactivo

Hola amigos coboleros, otra vez molestando por aca.
Tengo este codigo para leer archivos secuenciales, la pregunta es:
Como hago para que los datos leidos se muestren en forma horizontal.
Ejm:
Nombre del empleado ID del empleado Cantidad de casa vendidas
Pedro Perez 1 3
Juan Lopez 2 2

Código COBOL:
  1.        identification division.
  2.        program-id. venta-casa.
  3.      *
  4.        environment division.
  5.        input-output section.
  6.        file-control.
  7.            select empleados assign to "empleados.txt".
  8.      *
  9.        data division.
  10.        file section.
  11.        fd  empleados.
  12.        01  reg-empleados.
  13.            03 nombre-empleado      pic x(20).
  14.            03 idempleado           pic 999.
  15.            03 casas-vendidas       pic 99.
  16.        working-storage section.
  17.        01  fin-archivo    pic x value 'n'.
  18.      *
  19.        procedure division.
  20.        programa-principal.
  21.            perform abrir-archivo.          
  22.            perform proceso.
  23.            perform cerrar-archivo.
  24.            perform fin-programa.
  25.      *
  26.        abrir-archivo.
  27.            open input empleados.
  28.      *
  29.        cerrar-archivo.
  30.            close empleados.
  31.      *
  32.        proceso.
  33.            perform lee-datos until fin-archivo = 's'.
  34.      *
  35.        lee-datos.
  36.            read empleados
  37.                at end move 's' to fin-archivo
  38.                not at end
  39.                    perform muestra-datos
  40.            end-read.
  41.      *
  42.        fin-programa.
  43.            stop run.
  44.      *
  45.        muestra-datos.
  46.            display "Nombre de empleado: " nombre-empleado.
  47.            display "ID del empleado: " idempleado.
  48.            display "Cantidad de casas vendidas: " casas-vendidas.
  49.            display " ".
  50.  
dariodr is offline   Responder Con Cita
  #2
Antiguo 17 de marzo de 2023, 11:36
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@dariodr,

Código COBOL:
  1.        muestra-datos.
  2.            display "Nombre de empleado: " nombre-empleado " " NO ADVANCING
  3.            display "ID del empleado: " idempleado " " NO ADVANCING
  4.            display "Cantidad de casas vendidas: " casas-vendidas
  5.            display " ".



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 17 de marzo de 2023, 13:10
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

@dariodr, tambien lo puedes hacer así.....

Código COBOL:
  1.  display "Nombre de empleado: " nombre-empleado
  2.          " ID del empleado: " idempleado
  3.          " Cantidad de casas vendidas: " casas-vendidas.
JCantero is offline   Responder Con Cita
  #4
Antiguo 18 de marzo de 2023, 02:36
dariodr
Forero
Última Actividad 20.09.2026 10:04
Posts Posts: 57
Likes enviados Enviados: 17
Likes recibidos Recibidos: 11

Quiero algo un poco mas ordenado, con cabecera y que los datos esten tabulados. Se puede.
Salu2.
dariodr is offline   Responder Con Cita
  #5
Antiguo 18 de marzo de 2023, 20:17
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

Haz un display de la cabecera con el formato deseado y despues vas displayando la información.
JCantero is offline   Responder Con Cita
  #6
Antiguo 19 de marzo de 2023, 12:57
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

@dariodr,

A ver si con esto te vale y, sobre todo, te aclaras y lo entiendes

Código COBOL:
  1.        identification division.
  2.        program-id. venta-casa.
  3.      *
  4.        environment division.
  5.        input-output section.
  6.        file-control.
  7.            select empleados assign to "empleados.txt".
  8.      *
  9.        data division.
  10.        file section.
  11.        fd  empleados.
  12.        01  reg-empleados.
  13.            03 nombre-empleado      pic x(20).
  14.            03 idempleado           pic 999.
  15.            03 casas-vendidas       pic 99.
  16.        working-storage section.
  17.        01  fin-archivo    pic x value 'n'.
  18.      *
  19.        01  L              PIC 99 VALUE 0.
  20.        01  CAB.
  21.            03             PIC XX    VALUE SPACES.
  22.            03             PIC X(20) VALUE "Nombre".
  23.            03             PIC X     VALUE SPACES.
  24.            03             PIC X(03) VALUE "Id.".
  25.            03             PIC X     VALUE SPACES.
  26.            03             PIC X(05) VALUE "Casas".
  27.        01  CUERPO.
  28.            03             PIC XX    VALUE SPACES.
  29.            03  WNOM       PIC X(20).
  30.            03             PIC X     VALUE SPACES.
  31.            03  WID        PIC 999   USAGE IS DISPLAY.
  32.            03             PIC X     VALUE SPACES.
  33.            03  WCAS       PIC 99    USAGE IS DISPLAY.
  34.        01  TECLA          PIC X     VALUE SPACES.
  35.      *
  36.        procedure division.
  37.        programa-principal.
  38.            perform abrir-archivo.          
  39.            perform proceso.
  40.            perform cerrar-archivo.
  41.            perform fin-programa.
  42.      *
  43.        abrir-archivo.
  44.            open input empleados.
  45.      *
  46.        cerrar-archivo.
  47.            close empleados.
  48.      *
  49.        proceso.
  50.            INITIALIZE L CUERPO TECLA fin-archivo.
  51.            PERFORM IMP-CABECERA.
  52.            perform lee-datos until fin-archivo = 's'.
  53.      *
  54.        lee-datos.
  55.            read empleados NEXT RECORD
  56.                 at end
  57.                    move 's' to fin-archivo
  58.                 not at end
  59.                     perform muestra-datos
  60.            end-read.
  61.      *
  62.        fin-programa.
  63.            stop run.
  64.      *
  65.        muestra-datos.
  66.            MOVE nombre-empleado TO WNOM.
  67.            MOVE idempleado TO WID.
  68.            MOVE casas-vendidas TO WCAS.
  69.            DISPLAY CUERPO.
  70.  
  71.       *    display "Nombre de empleado: " nombre-empleado.
  72.      *    display "ID del empleado: " idempleado.
  73.      *    display "Cantidad de casas vendidas: " casas-vendidas.
  74.  
  75.            display " ".
  76.  
  77.            INITIALIZE CUERPO.
  78.            ADD 1 TO L.
  79.            IF L = 0
  80.               OR L > 23
  81.                  DISPLAY "Pulse una tecla para continuar (F para terminar) ..."
  82.                          WITH NO ADVANCING
  83.                  ACCEPT TECLA
  84.                  IF TECLA = "F" OR TECLA = "f"
  85.                     MOVE "s" TO fin-archivo
  86.                  ELSE
  87.                     INITIALIZE fin-archivo TECLA CUERPO
  88.                     PERFORM IMP-CABECERA
  89.                  END-IF
  90.            END-IF.
  91.      *
  92.        IMP-CABECERA.
  93.            DISPLAY " " ERASE.
  94.            DISPLAY CAB.
  95.            MOVE 1 TO L.

Lo que hay escrito en mayúsculas, es lo que he añadido yo, solo tengo una duda y es que ...

Código COBOL:
  1. DISPLAY " " ERASE

igual no te funciona en ese compilador, esa instrucción, lo que hace es borrar la pantalla, pero no es "compatible" con todos los lenguajes COBOL, cada uno tiene su manera , igual que no sé cuál es el equivalente a LINE y POSITION en el COBOL que tu usas, si lo supiera, podría hacerse más rápido y claro.
No lo he probado porque, obviamente, no tengo instalado ese compilador, pero supongo que funcionará sin errores, de lo contrario, dínoslo para solucionarlo.

Un salu2.-
Josber is offline   Responder Con Cita
  #7
Antiguo 20 de marzo de 2023, 02:14
dariodr
Forero
Última Actividad 20.09.2026 10:04
Posts Posts: 57
Likes enviados Enviados: 17
Likes recibidos Recibidos: 11

Funciono, ahora lo arreglo a mis necesidades
dariodr is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:46.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.