"
Supported by

Do you know the ASCII code for CR_LF and its buddies?

I don’t.

And I don’t want to. Why waste memory on stuff like that?

And I don’t need to because ABAP has a class just for that.

Meet CL_ABAP_CHAR_UTILITIES. It has some methods to convert ENDIAN to number and vice-versa, but that’s not why I’m talking about it. It’s because of the constants it defines:

  • HORIZONTAL_TAB
  • VERTICAL_TAB
  • NEWLINE
  • CR_LF
  • FORM_FEED
  • BACKSPACE
  • and some more

When you need a CR_LF, instead of trying to find its ASCI code you can simply type CL_ABAP_CHAR_UTILITIES=>CR_LF and there you have it.

Thank you Sérgio Serra for the tip.

Greetings from Abapinho.

2 comentários a “Do you know the ASCII code for CR_LF and its buddies?”

  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


About Abapinho
Abapinho runs on WordPress
Articles (RSS) e Comments (RSS).