Resultados 1 al 2 de 2

Tema: Error linea abrir archivo

  1. #1
      Acabo de llegar...
    J

    Registrado
    enero de 2024
    Ubicación
    Oaxaca
    Mensajes
    4
    Última visita
    30.04.2024

    Agradecimientos
     
    Recibidos
    1
    Enviados
    1

    Citaciones y menciones
     
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado Error linea abrir archivo

    Buenas tardes:

    Estoy aprendiendo cobol, estoy en leer un archivo, pero al querer leerlo, me sale el siguiente error:

    captura.png

    Esta es la estructura de la linea, me sale el error cuando quiero imprimir la linea del 38 al 41, pienso que es porque en esa linea hay espacio en blanco:

    CODE Código:
    1. 50502121 MM01000000000922000268                          B04B1688035B4426
    2. 50538000 MM01000000000127420265      AA15            B04B115850952110

    Aprovechando otra duda??

    Como se declara variables decimales, y como se asigna el valor, tomando como ejemplo estas lineas:

    Asi tengo de ejemplo de declarar variable decimal, 05 DIGITOS PIC S9(12)V9(2).
    CODE Código:
    1. 50502121 MM01000000000922000268                          B04B1688035B4426
    2. 50538000 MM01000000000127420265      AA15            B04B115850952110

    Para las primeras lineas seria: 2.68 y la segunda 2.65, pero el como pasar a decimal, es que no lo he encontrado.

    COBOL Código:
    1.      *-------------------------------------------------
    2.        IDENTIFICATION                   DIVISION.
    3.      *--------------------------------------------------
    4.        PROGRAM-ID.                      visorR3.
    5.        AUTHOR.                          A
    6.        DATE-WRITTEN.                    2023
    7.        SECURITY.              ============================================
    8.                               ============================================
    9.      *-------------------------------------------------------------------
    10.        ENVIRONMENT                       DIVISION.
    11.      *-------------------------------------------------------------------
    12.        CONFIGURATION                     SECTION.
    13.        SOURCE-COMPUTER.                  UNIX.
    14.        OBJECT-COMPUTER.                  UNIX.
    15.        INPUT-OUTPUT                       SECTION.
    16.        FILE-CONTROL.
    17.             SELECT RTRES ASSIGN TO "./RR3DKBB.330"
    18.             ORGANIZATION IS LINE SEQUENTIAL.
    19.      *--------------------------------------------------------------
    20.        DATA DIVISION.
    21.        FILE                             SECTION.
    22.        FD RTRES.
    23.        01 REGISTRO.
    24.           05 TIPOREG PIC X(2).
    25.           05 R3 PIC X(156).
    26.           05 TIPOMOV PIC X(2).
    27.           05 CUENTA PIC X(5).
    28.           05 SOCIEDAD  PIC X(4).
    29.           05 DIGITOS PIC S9(12)V9(2).
    30.           05 LUGAR PIC X(4).
    31.           05 CENT PIC X(5).
    32.      ******************************************************************
    33.        WORKING-STORAGE                  SECTION.
    34.  
    35.        01 FDR3.
    36.           05 WS-STUDENT-ID PIC 9(15).
    37.           05 WS-NAME PIC A(55).
    38.        01 FIN PIC A(1).
    39.      ******************************************************************
    40.        PROCEDURE                        DIVISION.
    41.      ******************************************************************
    42.        OPEN INPUT RTRES.
    43.           PERFORM UNTIL FIN='Y'
    44.           READ RTRES INTO FDR3
    45.             AT END MOVE 'Y' TO FIN
    46.             NOT AT END
    47.                 IF FDR3(1:2) = "50" OR FDR3(1:2)= "40"
    48.                         DISPLAY "LINEA"
    49.                         MOVE FDR3(1:2) TO TIPOREG
    50.                         DISPLAY TIPOREG
    51.                         MOVE FDR3(10:13) TO SOCIEDAD
    52.                         DISPLAY SOCIEDAD
    53.                         MOVE FDR3(28:31) TO LUGAR
    54.                         DISPLAY LUGAR
    55.                         MOVE FDR3(32:36) TO CENT
    56.                         DISPLAY CENT
    57.                         DISPLAY FDR3(38:39)***********Esta linea es la que me marca error
    58.                 END-IF
    59.           END-READ
    60.         END-PERFORM.
    61.        CLOSE RTRES.
    62.        STOP RUN.                       

    0 Not allowed!

  2. #2
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    799
    Última visita
    Hoy a las 12:07

    Agradecimientos
     
    Recibidos
    440
    Enviados
    364

    Citaciones y menciones
     
    Mentioned
    79 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    13 Post(s)
    Poder de Reputación
    37
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @JonathanDemons_123, con FDR3(38:39), le estás diciendo que de esa variable, empiece en la posición 38, y te muestre 39 posiciones más, (que hace un total de 77 posiciones, 38 + 39 = 77), la variable tuya, tiene un máximo de 70 posiciones, por lo que no te debe de funcionar, no sé que es lo que realmente quieres "displayar" pero cuando lo haces de esa manera, el formato es

    VARIABLE (n:p)

    donde n es donde quieres empezar y p es la cantidad de posiciones que quieres manejar

    algunos compiladores, permiten la sintaxis como

    VARIABLE (n: )

    que significa, desde esa posición hasta el tamaño máximo de la variable (el definido en la WORKING, no el usado), pero ya te comento que no lo soportan todos los compiladores

    No sé si me explico bien ...

    En respuesta al tema de los decimales, COBOL, no almacena los decimales de ninguna manera, cuando tú guardas por ejemplo, la cifra 1234 en una variable definida como PIC S9(6), ésta se almacena como +001234, si le añades decimales, por ejemplo 1234,567 en una variable PIC S9(6)V999, la cifra se almacena como +001234567, realmente es "la máscara" definida en la PICTURE, la que le da la estructura al dato, lo más cerca que puedes estar para definirlo y que se almacene lo más "natural" posible es que le añadas la cláusula USAGE DISPLAY a la variable y, dependiendo de compilador que uses te lo hará bien o no.

    Un salu2.-

    0 Not allowed!
    Última edición por Josber; 29.01.2024 a las 20:14

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. [Información] Error en apertura de archivo JMP031OI-U Acc-Method
    Por Lascu en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 0
    Último Mensaje: 23.07.2019, 15:06
  2. [Sintaxis] Error de lectura en archivo
    Por jmeza en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 2
    Último Mensaje: 12.12.2017, 12:13
  3. [Sintaxis] Abrir documento Word
    Por Roger en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 4
    Último Mensaje: 20.09.2016, 00:21
  4. [Compilador] Error 9Z al abrir un fichero
    Por Brandon en el foro AcuCobol
    Respuestas: 1
    Último Mensaje: 29.08.2016, 19:13
  5. [Información] Error al visualizar archivo PDF en red
    Por Roger en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 9
    Último Mensaje: 31.08.2015, 20:21

Etiquetas para este Tema

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •