Monday, October 16, 2006

Cantidad de ocurrencias en un texto


Alguna vez han necesitado saber cuantas veces se repite un caracter o un texto dentro de otros texto? Por ejemplo, cuantas veces se repite la letra A en Alvaro Tejada Galindo...Pues como ya he dicho en posts anteriores, el ABAP no es precisamente bueno para este tipo de manejo de Strings, así que este pequeño código, puede ser de utilidad.


*&-----------------------------------------------------------*
*& Form OCURRENCIAS_TEXTO *
*&-----------------------------------------------------------*
* Encuentra la cantidad de occurencias de un texto *
*------------------------------------------------------------*
FORM OCURRENCIA_TEXTO USING L_TEXTO CHAR_OCCUR
CHANGING L_OCURRENCIAS.

DATA: L_TEXT TYPE STRING.
L_TEXT = L_TEXTO.

FLAG = 'X'.

LONG = STRLEN( L_TEXT ).

WHILE FLAG EQ 'X'.
SEARCH L_TEXT FOR CHAR_OCCUR.
IF SY-SUBRC NE 0.
FLAG = ''.
ELSE.
COUNTER = COUNTER + 1.
POS = SY-FDPOS + 1.
NEW_POS = LONG - POS.
LONG = NEW_POS.
L_TEXT = L_TEXT+POS(NEW_POS).
ENDIF.
ENDWHILE.

L_OCURRENCIAS = COUNTER.

ENDFORM. "OCURRENCIA_TEXTO

Saludos,

Blag.

No comments: