Resultados 1 al 10 de 10

Tema: Compilacion erronea

  1. #1
      Acabo de llegar...
    d

    Registrado
    noviembre de 2018
    Edad
    52
    Mensajes
    17

    Agradecimientos
     
    Recibidos
    1
    Enviados
    3

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

    Predeterminado Compilacion erronea

    Hola amigos de nuevo por aca desempolvando mi rm/cobol85.
    Tengo este codigo pero a la hora de compilar me aparece error en FUNCTION LENGTH.
    Saludos.

    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID. LONGITUD.
    3.       *
    4.        ENVIRONMENT DIVISION.
    5.       *
    6.        DATA DIVISION.
    7.        WORKING-STORAGE SECTION.
    8.        01  LONGITUD  PIC 99.
    9.        01  TEXTO     PIC X(36)
    10.                      VALUE "Sistema de Control de Calificaciones".
    11.       *
    12.        PROCEDURE DIVISION.
    13.        PRINCIPAL.
    14.            MOVE FUNCTION LENGTH(TEXTO) TO LONGITUD.
    15.            DISPLAY "La longitud de la cadena es:" LONGITUD.
    16.            STOP RUN.
    17.            
    18.                        

    0 Not allowed!

  2. #2
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Edad
    37
    Mensajes
    2,010
    Ciudad
    Madrid

    Agradecimientos
     
    Recibidos
    860
    Enviados
    718

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

    Predeterminado

    @dariodr, lo mismo tiene que ir en un COMPUTE y no en un MOVE ?

    0 Not allowed!

    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el editor al botón y escribiendo su nick.

  3. #3
      Acabo de llegar...
    d

    Registrado
    noviembre de 2018
    Edad
    52
    Mensajes
    17

    Agradecimientos
     
    Recibidos
    1
    Enviados
    3

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

    Predeterminado

    Hola, he probado con COMPUTE y tambien da error.

    Este es el error en rm/cobol85
    Imagem Anexada Imagem Anexada

    0 Not allowed!

  4. #4
      Senior
    J

    Registrado
    junio de 2016
    Edad
    56
    Mensajes
    280
    Ciudad
    Albacete

    Agradecimientos
     
    Recibidos
    181
    Enviados
    92

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

    Predeterminado

    En RM/Cobol no existe ningun tipo "function".

    Tienes que hacerlo con un bucle "perform" o con "string".

    Aqui te adjunto el manual https://www.microfocus.com/documenta...15/RMC-LRM.pdf

    ---------- Post añadido el 9 de mayo de 2022 a las 19:21 ----------

    Tienes un hilo del foro que habla de eso

    [Aporte] Obtener la longitud del contenido de una variable - COBOL Foro

    ---------- Post añadido el 9 de mayo de 2022 a las 19:28 ----------

    Yo personalmente lo implemento con un perform

    ---------- Post añadido el 9 de mayo de 2022 a las 19:35 ----------

    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID. LONGITUD.
    3.       *
    4.        ENVIRONMENT DIVISION.
    5.       *
    6.        DATA DIVISION.
    7.        WORKING-STORAGE SECTION.
    8.        01  LONGITUD  PIC 99.
    9.        01  TEXTO     PIC X(36)
    10.                      VALUE "Sistema de Control de Calificaciones".
    11.       *
    12.        PROCEDURE DIVISION.
    13.        PRINCIPAL.
    14.            perform varying longitud from 1 by 1 until
    15.                  longitud = 36 or texto(longitud:) = ' '
    16.               continue
    17.            end-perform.
    18.  
    19.            DISPLAY "La longitud de la cadena es:" LONGITUD.
    20.            STOP RUN.

    Logicamente si la longitud de texto es mayor, por ejemplo 200, debemos de modificar 36 por 200

    ---------- Post añadido el 9 de mayo de 2022 a las 19:36 ----------

    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID. LONGITUD.
    3.       *
    4.        ENVIRONMENT DIVISION.
    5.       *
    6.        DATA DIVISION.
    7.        WORKING-STORAGE SECTION.
    8.        01  LONGITUD  PIC 99.
    9.        01  TEXTO     PIC X(200)
    10.                      VALUE "Sistema de Control de Calificaciones".
    11.       *
    12.        PROCEDURE DIVISION.
    13.        PRINCIPAL.
    14.            perform varying longitud from 1 by 1 until
    15.                  longitud = 200 or texto(longitud:) = ' '
    16.               continue
    17.            end-perform.
    18.  
    19.            DISPLAY "La longitud de la cadena es:" LONGITUD.
    20.            STOP RUN.

    0 Not allowed!

  5. #5
      Acabo de llegar...
    d

    Registrado
    noviembre de 2018
    Edad
    52
    Mensajes
    17

    Agradecimientos
     
    Recibidos
    1
    Enviados
    3

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

    Predeterminado

    Gracias por la respuesta, lo pondre en practica.
    Saludos.

    0 Not allowed!

  6. #6
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Mensajes
    641
    Ciudad
    Alicante

    Agradecimientos
     
    Recibidos
    338
    Enviados
    298

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

    Predeterminado

    A ver, ese bucle, tiene el problema de que en cuanto encuentre el primer espacio en blanco, para, por lo que, en este caso, en cuanto llegara al espacio en blanco que hay en el valor de la variable, después de "Sistema", se pararía. Tiene que ser un bucle inverso, que empiece por el final, hasta llegar al principio.

    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID. LONGITUD.
    3.       *
    4.        ENVIRONMENT DIVISION.
    5.       *
    6.        DATA DIVISION.
    7.        WORKING-STORAGE SECTION.
    8.        01  LONGITUD  PIC 99.
    9.        01  TEXTO     PIC X(36)
    10.                      VALUE "Sistema de Control de Calificaciones".
    11.       *
    12.        PROCEDURE DIVISION.
    13.        PRINCIPAL.
    14.            perform varying longitud from 36 by -1 until
    15.                  longitud = 1 or texto(longitud:) not = ' '
    16.               continue
    17.            end-perform.
    18.  
    19.            DISPLAY "La longitud de la cadena es:" LONGITUD.
    20.            STOP RUN.

    Como te indican, si cambias el tamaño de la variable, cambias el bucle, (ten en ecuenta de mirar también la PICTURE del contador, que sea la apropiada)

    Un salu2.-

    0 Not allowed!

  7. #7
      Guardián del Foro
    Avatar de Fito

    Registrado
    febrero de 2015
    Edad
    51
    Mensajes
    331
    Ciudad
    Córdoba, Villa María

    Agradecimientos
     
    Recibidos
    171
    Enviados
    176

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

    Predeterminado

    Hola @Josber,

    No, está bien asi como lo publicaron, Fijate de está analizando desde la posición hacia el final.

    Lo único que cuando lo pasó para 200 caracteres, la variable LONGITUD quedó de 99 en vez de 999.

    Saludos..

    Fito...

    0 Not allowed!

  8. #8
      Senior
    J

    Registrado
    junio de 2016
    Edad
    56
    Mensajes
    280
    Ciudad
    Albacete

    Agradecimientos
     
    Recibidos
    181
    Enviados
    92

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

    Predeterminado

    Cita Iniciado por Fito Ver Mensaje
    Hola @Josber,

    No, está bien asi como lo publicaron, Fijate de está analizando desde la posición hacia el final.

    Lo único que cuando lo pasó para 200 caracteres, la variable LONGITUD quedó de 99 en vez de 999.

    Saludos..

    Fito...
    Si, llevas razón, puse un ejemplo pero sin percatarme de ello. Yo siempre utilizo variables grandes para estas cosas.

    COBOL Código:
    1.                  01 longitud 9(6).

    0 Not allowed!

  9. #9
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Mensajes
    641
    Ciudad
    Alicante

    Agradecimientos
     
    Recibidos
    338
    Enviados
    298

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

    Predeterminado

    ¿Dónde ha ido a parar todo el código COBOL que había en éste post? ....


    0 Not allowed!

  10. #10
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Edad
    37
    Mensajes
    2,010
    Ciudad
    Madrid

    Agradecimientos
     
    Recibidos
    860
    Enviados
    718

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

    Predeterminado

    @Josber, ha habido algún problema. Al editar vuelven a salir.... No sé, voy a ver...

    Si veis algo así en otros posts, decídmelo.

    0 Not allowed!

    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el editor al botón y escribiendo su nick.

Información de Tema

Usuarios Viendo este Tema

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

Temas Similares

  1. [Compilador] Advertencias en compilacion
    Por Fabio en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 8
    Último Mensaje: 23.08.2021, 10:22

User Tag List

Permisos de Publicación

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