Ver Mensaje Individual
  #1
Antiguo 16 de junio de 2020, 16:15
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207
Divertido Obtener la longitud del contenido de una variable
2 Inactivo Inactivo

Amigos, hay una maravilla en Cobol que muchos desconocen. Así que he pensado en compartirla.

En Fujitsu hay una función, que es la STORED-CHAR-LENGTH la que nos dice la longitud del valor de un campo. Pero en otros Cobol esta función no existe.

Pero lo que muchos no saben, es que el verbo STRING de Cobol puede decirnoslo si lo usamos con el añadido WITH POINTER!

Ejemplo:
Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID.    PROGRAM1.
  3.  
  4.        DATA DIVISION.
  5.        WORKING-STORAGE SECTION.
  6.        01  WS-A  PIC X(15) VALUE "ABCDE 12".
  7.        01  WS-C  PIC X(15).
  8.        
  9.        01  IDX-1 PIC 99 VALUE 1.
  10.        
  11.        PROCEDURE DIVISION.
  12.            
  13.            STRING WS-A
  14.                DELIMITED BY "  "
  15.                INTO WS-C
  16.                WITH POINTER IDX-1
  17.            
  18.            DISPLAY IDX-1
  19.            
  20.            GOBACK
  21.            .

En IDX-1 vamos a tener el número correspondiente al primer caracter "libre" después de haber realizado el STRING, o sea en el caso del ejemplo, vamos a tener un 9.

Con lo cual, la longitud del contenido siempre será IDX-1 - 1.

Evidentemente este ejemplo es para una cadena con espacios en medio (por eso en DELIMITED hay 2 espacios) pero se puede adaptar según necesitad.

Espero que sirva a alguien.




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