En el COBOL de z/OS, la función intrínseca LENGTH OF devuelve el número de bytes que ocupa una variable. Por lo tanto, utilizada con una variable alfanumérica, devolverá el total de bytes que ocupa la variable, aunque todos ellos contengan espacios.
Sin embargo, en muchos casos nos interesa conocer el número de carácteres que contiene una variable alfanumérica sin contar los espacios del final. Para ello podemos usar la instrucción INSPECT, que permite contar el número de espacios al inicio, combinada con la función REVERSE, que invierte el contenido de una variable alfanumérica.
Siendo W-LONG y W-CONT variables numéricas y W-CADENA la variable alfanumérica que queremos examinar, el siguiente código dejará en W-LONG el número de caracteres contenido en la variable:
MOVE ZERO TO W-CONT
INSPECT FUNCTION REVERSE(W-CADENA)
TALLYING W-CONT FOR LEADING SPACES
COMPUTE W-LONG = LENGTH OF W-CADENA - W-CONT
Muy bueno, no conocía la función REVERSE. Desde Argentina se agradece.