*&---------------------------------------------------------------------* *& Report ZANMA_R_TRATAMIENTO_STRING *& *&---------------------------------------------------------------------* REPORT zanma_r_tratamiento_string. *definicion de variables DATA a TYPE i. DATA b TYPE i. DATA c TYPE i VALUE 0. DATA cont TYPE i VALUE 0. DATA cont2(2) TYPE n VALUE 1. DATA text1 TYPE c VALUE ''. DATA text2 TYPE c VALUE ''. DATA cadena2 TYPE string VALUE ''. DATA cadena3 TYPE string VALUE ''. DATA: splitabl TYPE TABLE OF string WITH HEADER LINE, text TYPE string VALUE `What a drag it is getting old`. DATA pco3 TYPE string. ***bloque del translate SELECTION-SCREEN BEGIN OF BLOCK block WITH FRAME TITLE text-000. PARAMETERS: p_trans(30) LOWER CASE. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 10. SELECTION-SCREEN COMMENT 1(7) text-002. PARAMETERS p_part(30) LOWER CASE. SELECTION-SCREEN POSITION 41. SELECTION-SCREEN COMMENT 42(10) text-003. PARAMETERS: p_part1(15) LOWER CASE. SELECTION-SCREEN POSITION 70. SELECTION-SCREEN COMMENT 71(10) text-004. PARAMETERS: p_part2(15) LOWER CASE. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK block . ****bloque del search SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001. PARAMETERS: psearch2(100) LOWER CASE. PARAMETERS: p_search(100) LOWER CASE. SELECTION-SCREEN END OF BLOCK block1. ******bloque del condense SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-005. PARAMETERS: pconden(100) LOWER CASE. SELECTION-SCREEN END OF BLOCK block2. ***bloque del split SELECTION-SCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE text-006. PARAMETERS: psplit(100) LOWER CASE. PARAMETERS: psplit2 TYPE string LOWER CASE. SELECTION-SCREEN END OF BLOCK block3. ***bloque del replace SELECTION-SCREEN BEGIN OF BLOCK block4 WITH FRAME TITLE text-007. PARAMETERS: preplace(100) LOWER CASE. PARAMETERS: preplac2 TYPE string LOWER CASE. PARAMETERS: preplac3 TYPE string LOWER CASE. SELECTION-SCREEN END OF BLOCK block4. ***bloque del concatenate SELECTION-SCREEN BEGIN OF BLOCK block5 WITH FRAME TITLE text-008. PARAMETERS: pconcat TYPE string LOWER CASE. PARAMETERS: pconcat2 TYPE string LOWER CASE. SELECTION-SCREEN END OF BLOCK block5. ***bloque del operador CO SELECTION-SCREEN BEGIN OF BLOCK block6 WITH FRAME TITLE text-009. PARAMETERS: pco TYPE string LOWER CASE. PARAMETERS: pco2 TYPE string LOWER CASE. SELECTION-SCREEN END OF BLOCK block6. *start of selection START-OF-SELECTION. SKIP. ************translate WRITE /38 'EJERCICIO 1' color 4. IF p_trans IS NOT INITIAL. CONDENSE p_trans NO-GAPS. WRITE /55 'Hace la conversion a minusculas'. WRITE /55 p_trans NO-GAP. WRITE /55 'A MINUSCULAS'. TRANSLATE p_trans TO LOWER CASE. WRITE /55 p_trans NO-GAP. SKIP. * WRITE sy-uline. SKIP 2. ELSE. WRITE /55 'No escribistes texto'. SKIP. * WRITE sy-uline. SKIP 2. ENDIF. * IF p_patt IS NOT INITIAL. * WRITE / 'Hace la conversion a minusculas'. * WRITE / p_patt NO-GAP. * WRITE / 'a minusculas'. * TRANSLATE p_patt USING 'ABBAabbah1'. * WRITE / p_patt NO-GAP. * WRITE sy-uline. * SKIP 2. * ELSE. * WRITE / 'No escribistes texto en el cuadro 2'. * WRITE sy-uline. * SKIP 2. * ENDIF. ************Translate con pattern COMPUTE a = STRLEN( p_part1 ). COMPUTE b = STRLEN( p_part2 ). WRITE /38 'EJERCICIO 1 CON PATERN' color 4. IF p_part IS NOT INITIAL. * IF a EQ b. WHILE c = 0. IF cont = a. c = 1. ENDIF. text1 = p_part1+cont(1). text2 = p_part2+cont(1). CONCATENATE cadena2 text1 text2 INTO cadena2. cont = cont + 1. ENDWHILE. TRANSLATE p_part USING cadena2. WRITE: /55 p_part. * ELSE. * WRITE /55 'Los campos para cambiar no tienen la misma longitud'. * ENDIF. ELSE. WRITE /55 'No existe ninguna frase'. ENDIF. SKIP. * WRITE: sy-uline. SKIP 2. *************find WRITE /38 'EJERCICIO 2' color 4. IF p_search IS NOT INITIAL. FIND p_search IN psearch2. IF sy-subrc EQ 0. WRITE: /55 'Se encontro coincidencia '. WRITE: /55 p_search. SKIP. * WRITE: sy-uline. SKIP 2. ELSE. WRITE /55 'No se encontro ninguna coincidencia'. SKIP. * WRITE sy-uline. SKIP 2. ENDIF. ELSE. WRITE /55 'No escribistes texto'. SKIP. * WRITE sy-uline. SKIP 2. ENDIF. **********condense WRITE /38 'EJERCICIO 3' color 4. IF pconden IS NOT INITIAL. CONDENSE pconden NO-GAPS. WRITE: /55 pconden. ELSE. WRITE /55 'No escribistes texto'. SKIP. * WRITE sy-uline. SKIP 2. ENDIF. *************split WRITE /38 'EJERCICIO 4' color 4. IF psplit IS NOT INITIAL AND psplit2 IS NOT INITIAL. CONDENSE psplit2 NO-GAPS. SPLIT psplit AT psplit2 INTO TABLE splitabl. LOOP AT splitabl. CONDENSE splitabl NO-GAPS. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = cont2 IMPORTING output = cont2. WRITE: /52 cont2, 55 splitabl. cont2 = cont2 + 1. ENDLOOP. ELSE. WRITE /55 'No escribistes texto'. SKIP. * WRITE sy-uline. SKIP 2. ENDIF. *********Replace WRITE /38 'EJERCICIO 5' color 4. IF preplace IS NOT INITIAL AND preplac2 IS NOT INITIAL AND preplac3 IS NOT INITIAL. WRITE: /55 'EL TEXTO INICIAL ES: ', /55 preplace. REPLACE ALL OCCURRENCES OF preplac2 IN preplace WITH preplac3. WRITE: /55 'EL TEXTO CORREGIDO ES:'. WRITE /55 preplace. ELSE. WRITE /55 'No escribistes texto'. SKIP. * WRITE sy-uline. SKIP 2. ENDIF. *********Concatenate WRITE /38 'EJERCICIO 6' color 4. IF pconcat IS NOT INITIAL AND pconcat2 IS NOT INITIAL. CONCATENATE pconcat pconcat2 INTO cadena3 SEPARATED BY space. WRITE: /55 'EL TEXTO UNIDO ES: ', /55 cadena3. ELSE. WRITE /55 'No escribistes texto'. SKIP. * WRITE sy-uline. SKIP 2. ENDIF. *********Operador CO WRITE /38 'EJERCICIO 7' color 4. IF pco IS NOT INITIAL AND pco2 IS NOT INITIAL. CONCATENATE 'Las cadenas iniciales son:' pco 'y' pco2 INTO: pco3 SEPARATED BY space. WRITE:/55 pco3. IF pco CO pco2. WRITE:/55 'La cadena 1 contiene caracteres de la cadena 2'. ELSE. WRITE:/55 'La cadena 1 no contiene caracteres de la cadena 2'. ENDIF. ELSE. WRITE /55 'No escribistes texto'. SKIP. * WRITE sy-uline. SKIP 2. ENDIF.