Ver Mensaje Individual
  #4
Antiguo 9 de mayo de 2022, 19:02
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

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 ----------

Código COBOL:
  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 ----------

Código COBOL:
  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.
JCantero is offline   Responder Con Cita