Friday, September 22, 2006

Letras capitalizadas en ABAP

Por alguna razón...El ABAP es bastante malo en el manejo de Strings...Lo cual no me hace mucha gracia...Por ejemplo, carece de una función que he utilizado más de una vez en PHP y Ruby...Me refiero a Capitalizar letras, es decir, dado un texto, la primera letra de cada palabra se muestra en Mayúsculas y las demás en minúsculas...Nos es que sea algo demasiado útil, pero uno nunca sabe. El código es bastante sencillo -:)


REPORT Z_CAPITALIZE_LETTERS.

TYPES: X_LINES TYPE STRING.

DATA: T_TABLE TYPE STANDARD TABLE OF X_LINES WITH HEADER LINE,
TEXTO TYPE STRING,
LENGTH TYPE I,
AUX TYPE STRING.

TEXTO = 'alvaro tejada galindo'.

WRITE TEXTO.

TRANSLATE TEXTO TO LOWER CASE.
SPLIT TEXTO AT SPACE INTO TABLE T_TABLE.

CLEAR TEXTO.

LOOP AT T_TABLE.
LENGTH = STRLEN( T_TABLE ).
LENGTH = LENGTH - 1.
AUX = T_TABLE+0(1).
TRANSLATE AUX TO UPPER CASE.
CONCATENATE AUX T_TABLE+1(LENGTH) INTO AUX.
CONCATENATE TEXTO AUX INTO TEXTO
SEPARATED BY SPACE.
SHIFT TEXTO LEFT DELETING LEADING SPACE.
ENDLOOP.

WRITE:/ TEXTO.


Saludos,

Blag.

2 comments:

Edwar Soto said...

Excelente trabajo amigo!!
Solo tenemos que hacer unos cambios pequeños, eliminar de la tabla T_TABLE los registros vacios luego de la instruccion de SPLIT.

DELETE t_table WHERE table_line = space.


Edwar de jesus desde Venezuela

Edwar Soto said...

Excelente trabajo amigo!!
Solo tenemos que hacer unos cambios pequeños, eliminar de la tabla T_TABLE los registros vacios luego de la instruccion de SPLIT.

DELETE t_table WHERE table_line = space.


Edwar de jesus desde Venezuela