jueves, 28 de marzo de 2013

FUNCION TRIM en COBOL 400


FUNCTION TRIM EN COBOL 400

Dependiendo de la versión del sistema operativo del Iseries que tengamos actualmente, podremos hacer uso de muchas funciones en el Lenguaje de nuestros ancestros (Cobol) como la conocida y muy usada función TRIM, TRIMR o TRIML.

Esta función es muy usada en RPG, pero no lo es en Cobol.
Aquí les dejo un ejemplo básico de cómo hacer uso de esta función que está disponible a partir de la versión 7 del Iseries (si es que no me equivoco)


       DATA DIVISION.                                                  
       WORKING-STORAGE SECTION.                                        
       77  DIRECCION PIC X(120) VALUE 'AV. NO DISPONIBLE HUAYLAS 1737'.
       77  DIR-1  PIC X(60) VALUE SPACES.                              
       77  DIR-2  PIC X(60) VALUE SPACES.                              
      *                                                                
       PROCEDURE DIVISION.                                              
                                                                       
       CORREGIR-DIRECCIONES.                                           
      *********************                                            
                                                                        
      * DIRECCION DE DOMICILIO                                         
            INSPECT  DIRECCION REPLACING ALL "NO DISPONIBLE" BY SPACES.
            UNSTRING DIRECCION DELIMITED BY  "             "           
                            INTO  DIR-1  DIR-2                         
            END-UNSTRING                                               
            MOVE SPACES TO   DIRECCION                                 
            STRING  FUNCTION TRIM(DIR-1)                               
                    FUNCTION TRIM(DIR-2)  DELIMITED BY SIZE            
                                     INTO   DIRECCION                  
            END-STRING                                                  
****************** Fin de datos ****************************************


El resultado del ejemplo anterior :

INPUT= "AV. NO DISPONIBLE HUAYLAS 1737   ".       
OUTPUT= "AV.HUAYLAS 1737          ".      

Así mismo, recordar que también podremos hacer uso de las funciones TRIMR y TRIML.