Avalados por :

Función y definición de una declaración de condensación

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 4 Vistas
0
Cargando...

¿Qué es una declaración de condensación y cuál es su función?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola,

es para suprimir todos los espacios en blanco del campo de tipo CHAR,

puntos de recompensa y cerrar el hilo.

Saludos,

Harish

El mensaje fue editado por:

Harish AGINATI

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi Vijay

La instrucción CONDENSE elimina los espacios redundantes de una cadena:

CONDENSE <c> [NO-GAPS].

Esta instrucción elimina los espacios en blanco iniciales en el campo <c> y reemplaza otras secuencias de espacios en blanco por exactamente un espacio en blanco. El resultado es una secuencia de palabras justificadas a la izquierda, cada una separada por un espacio en blanco. Si se especifica la adición NO-GAPS, se eliminan todos los espacios en blanco.



        DATA: STRING(25) VALUE ' one two three four',
        LEN TYPE I.

        LEN = STRLEN( STRING ).
        WRITE: STRING, '!'.
        WRITE: / 'Longitud: ', LEN.

        CONDENSE STRING.
        LEN = STRLEN( STRING ).
        WRITE: STRING, '!'.
        WRITE: / 'Longitud: ', LEN.

        CONDENSE STRING NO-GAPS.
        LEN = STRLEN( STRING ).
        WRITE: STRING, '!'.
        WRITE: / 'Longitud: ', LEN.

        

Resultado:

one two three four !

Longitud: 25

one two three four !

Longitud: 18

onetwothreefour !

Longitud: 15

Ten en cuenta que la longitud total del campo STRING permanece sin cambios, pero que los espacios en blanco eliminados vuelven a aparecer en la derecha.

Saludos, Rk

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hello,


Syntaxdiagramm 
CONDENSE 


Forma básica 
CONDENSE c. 

Adición 
... NO-GAPS 



Nota 
Al igual que todas las declaraciones de procesamiento de cadenas, solo se pueden utilizar operandos de tipo caracter aquí. Si el tipo de un operando no es STRING, el operando se trata como un campo de tipo C, independientemente de su tipo real, aunque no se realiza ninguna conversión real. 



En un contexto de Objetos ABAP, se realiza una verificación de sintaxis más severa que en otras áreas de ABAP. Ver Solo se permiten campos de caracteres en el procesamiento de cadenas. 

Efecto 
Desplaza el contenido de c hacia la izquierda, de modo que las secuencias de espacios en blanco se reducen a exactamente un espacio en blanco. Los espacios iniciales (y, para campos de tipo C, los espacios finales también) se eliminan por completo. 



Ejemplo
DATA NAME (30). 
        NAME(10)    = '   Dr.', 
        NAME+10(10) = 'Michael', 
        NAME+20(10) = 'Hofmann'. 
CONDENSE NAME. 
WRITE NAME. 



produce la salida: 

Dr. Michael Hofmann 



Adición 
... NO-GAPS 


Efecto 
Suprime todos los espacios en blanco del campo c 



Ejemplo
DATA: BEGIN OF NAME, 
        TITLE(8)       VALUE '   Dr.', 
        FIRST_NAME(10) VALUE 'Michael', 
        SURNAME(10)    VALUE 'Hofmann', 
      END   OF NAME. 
CONDENSE NAME NO-GAPS. 



El contenido de NAME es ahora "Dr.MichaelHofmann". 

Dado que el campo de cadena NAME se interpreta y maneja como un campo de tipo C, la instrucción CONDENSE lo trata como un todo e ignora cualquier subcampo. Por lo tanto, el contenido del subcampo sería ahora el siguiente: 

NAME-TITLE       = 'Dr.Micha' 
NAME-FIRST_NAME  = 'elHofmann ' 
NAME-SURNAME     = '          ' 



Nota 
No utilice CONDENSE para manipular estructuras que incluyan campos que no sean de tipo C. Esto podría resultar en que los subcampos contengan caracteres de un tipo diferente (es decir, incorrecto). No se puede utilizar la instrucción con estructuras que contengan componentes de tipo STRING. 






Nota 
Rendimiento: 



El tiempo de ejecución requerido para condensar tres campos es de aproximadamente 20 msn (microsegundos estandarizados). La variante NO-GAPS necesita alrededor de 12 msn. 

Relacionado 
SHIFT, CONCATENATE, REPLACE, SPLIT 


Ayuda adicional 
Compresión de contenidos de campo 

0
Cargando...

Hola Vijay

La instrucción CONDENSE elimina los espacios redundantes de una cadena:

CONDENSE <c> [NO-GAPS].

Esta instrucción elimina los espacios en blanco iniciales del campo <c> y reemplaza otras secuencias de espacios en blanco por exactamente un espacio en blanco. El resultado es una secuencia de palabras justificada a la izquierda, cada una separada por un espacio en blanco. Si se especifica la adición NO-GAPS, se eliminan todos los espacios en blanco.



DATA: STRING(25) VALUE ' one two three four',
LEN TYPE I.

LEN = STRLEN( STRING ).
WRITE: STRING, '!'.
WRITE: / 'Longitud: ', LEN.

CONDENSE STRING.
LEN = STRLEN( STRING ).
WRITE: STRING, '!'.
WRITE: / 'Longitud: ', LEN.

CONDENSE STRING NO-GAPS.
LEN = STRLEN( STRING ).
WRITE: STRING, '!'.
WRITE: / 'Longitud: ', LEN.

Salida:

one two three four !

Longitud: 25

one two three four !

Longitud: 18

onetwothreefour !

Longitud: 15

Nota que la longitud total del campo STRING permanece sin cambios, pero que los espacios en blanco eliminados aparecen nuevamente a la derecha.

Saludos, Rk

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?