Avalados por :

Função e definição de uma declaração de condensação

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

O que é uma declaração de resumo e qual é a sua função?

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

4 Respuestas

0
Cargando...

Olá,

é para remover todos os espaços em branco do campo do tipo CHAR,

pontos de recompensa e fechar o tópico.

Saudações,

Harish

A mensagem foi editada por:

Harish AGINATI

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

Olá Vijay

A instrução CONDENSE remove os espaços redundantes de uma cadeia:

CONDENSE <c> [NO-GAPS].

Esta instrução remove os espaços em branco iniciais no campo <c> e substitui outras sequências de espaços em branco por exatamente um espaço em branco. O resultado é uma sequência de palavras justificadas à esquerda, cada uma separada por um espaço em branco. Se a adição NO-GAPS for especificada, todos os espaços em branco são removidos.



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

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

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

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

        

Resultado:

one two three four !

Comprimento: 25

one two three four !

Comprimento: 18

onetwothreefour !

Comprimento: 15

Note que o comprimento total do campo STRING permanece inalterado, mas os espaços em branco removidos reaparecem à direita.

Saudações, Rk

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

Olá,


Diagrama de sintaxe 
CONDENSE 


Forma básica 
CONDENSE c. 

Adição 
... NO-GAPS 



Nota 
Assim como todas as declarações de processamento de strings, apenas operandos do tipo caractere podem ser usados aqui. Se o tipo de um operando não for STRING, o operando é tratado como um campo do tipo C, independentemente de seu tipo real, embora nenhuma conversão real seja realizada. 



Em um contexto de Objetos ABAP, uma verificação de sintaxe mais rigorosa é realizada do que em outras áreas do ABAP. Veja Somente campos de caracteres são permitidos no processamento de strings. 

Efeito 
Move o conteúdo de c para a esquerda, de modo que sequências de espaços em branco sejam reduzidas a exatamente um espaço em branco. Os espaços iniciais (e, para campos do tipo C, também os espaços finais) são completamente removidos. 



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



produz a saída: 

Dr. Michael Hofmann 



Adição 
... NO-GAPS 


Efeito 
Suprime todos os espaços em branco do campo c 



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



O conteúdo de NAME agora é "Dr.MichaelHofmann". 

Como o campo de string NAME é interpretado e tratado como um campo do tipo C, a instrução CONDENSE o trata como um todo e ignora qualquer subcampo. Portanto, o conteúdo do subcampo seria agora o seguinte: 

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



Nota 
Não use CONDENSE para manipular estruturas que incluem campos que não sejam do tipo C. Isso pode resultar em subcampos contendo caracteres de um tipo diferente (ou seja, incorreto). A instrução não pode ser usada com estruturas que contenham componentes do tipo STRING. 






Nota 
Desempenho: 



O tempo de execução necessário para condensar três campos é de aproximadamente 20 msn (microssegundos padronizados). A variante NO-GAPS precisa de cerca de 12 msn. 

Relacionado 
SHIFT, CONCATENATE, REPLACE, SPLIT 


Ajuda adicional 
Compressão de conteúdo de campo 

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

Olá Vijay

A instrução CONDENSE remove os espaços redundantes de uma cadeia:

CONDENSE <c> [NO-GAPS].

Esta instrução remove os espaços em branco iniciais do campo <c> e substitui outras sequências de espaços em branco por exatamente um espaço em branco. O resultado é uma sequência de palavras justificadas à esquerda, cada uma separada por um espaço em branco. Se NO-GAPS for especificado, todos os espaços em branco são removidos.



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

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

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

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

Saída:

one two three four !

Comprimento: 25

one two three four !

Comprimento: 18

onetwothreefour !

Comprimento: 15

Note que o comprimento total do campo STRING permanece inalterado, mas os espaços em branco removidos reaparecem à direita.

Saudações, 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?