"
Apoiado por

Nunca te lembras do código ASCII do CR_LF e seus amigos?

Eu também não.

Nem quero lembrar-me. Para quê gastar memória com códigos obtusos?

E não é preciso porque o ABAP tem uma classe que ajuda.

Chama-se CL_ABAP_CHAR_UTILITIES. Tem uns métodos para converter de ENDIAN para número e vice-versa e tal, mas não é por isso que estou a falar dela. Trago-a à baila por causa das constantes que nela estão definidas:

  • HORIZONTAL_TAB
  • VERTICAL_TAB
  • NEWLINE
  • CR_LF
  • FORM_FEED
  • BACKSPACE
  • e mais umas

Quando precisares de um CR_LF em vez de ires à procura do seu código ASCII só tens de usar CL_ABAP_CHAR_UTILITIES=>CR_LF e aí o tens.

Obrigado Sérgio Serra pela dica.

O Abapinho saúda-vos.

2 comentários a “Nunca te lembras do código ASCII do CR_LF e seus amigos?”

  1. Rui Nunes Diz:

    Olá Nuno,

    Há outra razão para usar essa classe. Esses atributos estão definidos com um valor inicial %_ (ex: %_HORIZONTAL_TAB). Este valor muda de acordo com o tipo de encoding da instância do servidor aplicacional (big endian, little endian).

    Há algum tempo atrás estive envolvido num projecto de conversão de HP-UX (big endian) para Linux/Intel (little endian) e vários programas tiveram que ser actualizados porque os valores hexadecimais não coincidiam. No caso do “Horizontal Tab” o valor hexadecimal para HP-UX era ‘0009’ enquanto para Linux era ‘0900’.

    O problema seria ainda mais complicado durante a fase de arranque em que tivemos os dois sistemas a funcionar em paralelo durante 3 meses em 8 servidores aplicacionais distintos.

    Utilizando essa classe, temos a garantia que o valor utilizado será sempre o correcto, independentemente do utilizador se ligar a uma instância HP-UX ou Linux.

    Um abraço,
    Rui

  2. Nuno Godinho Diz:

    Olá Rui,

    Interessante esse cenário. Obrigado pela partilha.

    Abraço,
    Nuno

Deixe um comentário


Acerca do Abapinho
O Abapinho é suportado pelo WordPress
Artigos (RSS) e Comentários (RSS).