Realmente es muy frustrante ver como un caracter extraño puede deshacer todo un desarrollo. Estos caracteres no se puede atacar mediante un REPLACE ya que no pueden ser entrados por teclado y el cambio a hexadecimal no suele dar muy buenos resultados.
En el ejemplo que os pongo cambiremos esos caracteres por el caracter '/' con lo que ya lo podeis tratar como un texto normal. Yo lo que haré despues es sutiruirlo por espacio y condensar:
Definimos un integer con el valor hexadecimal de la barra:
DATA lv_int TYPE i VALUE 47.
Llamo a la función:
CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS'
EXPORTING
intext = "Texto_a_tratar"
replacement = lv_int
IMPORTING
outtext ="texto_salida"
.
REPLACE ALL OCCURRENCES OF '/' IN "texto_salida" WITH space.
CONDENSE "texto_salida" NO-GAPS.
Jajajjaa, yo he trabajado con CO-PA y con lo del modulo "especial" me senti re identificado. =)
ResponderEliminarMuy buen post, sigue así amigo Bisonye.
Y si tu texto original tiene espacios? los elimina tambien?
ResponderEliminarAdranko, el condense elimina los espacios delante y detrás de la cadena de texto y los intermedios los deja en un solo espacio.
EliminarSi además añades el NO-GAPS elimina todos los espacios, tanto delante, atrás como los intermedios.
Saludos
Muchas Gracias, llevaba 2 dias buscando la forma de solucionar mi problema
ResponderEliminarCiertamente un gran aporte. Ha sido mi salvación después de un buen rato frustrada, dado que aun con el REPLACE y usándo los carácteres especiales, se me escapaba siempre alguno que me fastidiaba el Excel. Gracias!
ResponderEliminarholas.
ResponderEliminarTengo el ingreso de un lote errado, gabro con letra minuscula y no se puede realizar el cambio o corrección usando las transacción MB1B clase de mov. 311.
Como lo puedo corregir? 703pe00169