jueves, 2 de noviembre de 2017

COBOL - longitud campos

Hay campos con los que es muy fácil saber qué longitud tienen. Por ejemplo:

  • Alfanumérico de 10 posiciones...: PIC X(10)
  • Numérico de 10 posiciones........: PIC 9(10)

Pero en otros casos no es tan sencillo y hay que seguir una serie de pasos. Por ejemplo, un caso muy significativo es el numérico empaquetado que tiene parte entera y parte decimal. Tomemos de base para nuestro ejemplo el siguiente dato numérico:

     PIC S9(3)V9(2) USAGE COMP-3

Para saber que tiene 3 posiciones hay que dar los siguientes pasos:
  1. Sumar parte entera y parte decimal...............: 3 + 2 = 5
  2. Dividir entre 2 el resultado del paso anterior...: 5/2, el resultado es 2 (resto 1)
  3. Sumamos el resultado de la división y el resto.: 2 + 1 = 3

Al dar estos pasos tan sencillos hemos llegado a obtener la longitud del anterior dato numérico: 3 posiciones.

Otro ejemplo más, un numérico de 9 posiciones que está en hexadecimal sin empaquetar:

     PIC S9(9) USAGE COMP
 
Para saber que tiene 4 posiciones hay que dar los siguientes pasos:
  1. Dividir entre 2 la parte entera (no tiene parte decimal)...: 9/2, el resultado es 4 (resto 1)
Al dar estos pasos tan sencillos hemos llegado a obtener la longitud del anterior dato numérico: 4 posiciones.