MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 23/09/08, 16:59:34
JuanFCalle JuanFCalle is offline
Junior Member
 
Fecha de Ingreso: sep 2007
Localización: Bogota, Colombia
Mensajes: 17
Cadena con caracteres especiales

Hola, tengo un problema, tengo una cadena en un campo de una tabla Z esta con caracteres ## cuando hay un enter, pero se los tengo que quitar y no he podido, he tratado con translate y replace pero pienso que lo que toca es ver la cadena en hexadecimal para poder saber realmente que son esos caracteres, para poder quitarselos.

Agradezco me ayuden.

Gracias
Responder Con Cita
  #2  
Viejo 23/09/08, 19:23:10
ibecerra
 
Mensajes: n/a
Checka esta funcion espero q te sirva
FUNCTION Z_CHARACTER_TO_ASCII_CODE.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(FI_CHARACTER) TYPE C
*" EXPORTING
*" REFERENCE(FE_ASCII_CODE_DEC) TYPE I
*" REFERENCE(FE_ASCII_CODE_HEX) TYPE C
*"----------------------------------------------------------------------
field-symbols <FS> type x.
*Have to use CASTING here to purposely force SAP to convert the
*character to an equivalent HEX value (using ASCII chart).
*Note that CASTING feature is not available prior release 4.6
assign fi_character(1) to <FS> casting.
*The type of the destination field will cause SAP to determine which
*type (Decimal/Hexadecimal) of ASCII code should be converted:
* X -> I gives Dec value
* X -> C gives Hex value
fe_ascii_code_dec = <FS>.
fe_ascii_code_hex = <FS>.


ENDFUNCTION.
Responder Con Cita
  #3  
Viejo 23/02/11, 17:15:02
CarlosPB83266 CarlosPB83266 is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Localización: Mexico, Tecamac
Mensajes: 5
Checa esta

Yo tengo el mismo proble, estoy usando el siguiente codigo que si me quita los enter pero tambien puntos y comas, hay que adecuarla.

L_ARROBA TYPE C VALUE '@',
L_SPACE TYPE C VALUE '',
L_VAR2 TYPE C LENGTH 2 VALUE '@@',


READ TABLE I_TLINE INDEX 1.
DATA L_CAD TYPE C LENGTH 15.
L_CAD = '[^[:alnum:] ]'.
REPLACE ALL OCCURRENCES OF REGEX L_CAD IN I_TLINE-TDLINE WITH L_ARROBA.

IF SY-SUBRC EQ 0.
SPLIT I_TLINE-TDLINE AT L_VAR2
INTO: L_LINE01 L_LINE02 L_LINE03 L_LINE04
L_LINE05 L_LINE06 L_LINE07 L_LINE08
L_LINE09 L_LINE10.

REPLACE ALL OCCURRENCES OF REGEX L_ARROBA IN L_LINE10 WITH L_SPACE.
CLEAR: L_CONT, L_REG.




Saludos
Responder Con Cita
  #4  
Viejo 18/12/15, 10:21:53
orellanajorge orellanajorge is offline
Junior Member
 
Fecha de Ingreso: dic 2014
Mensajes: 4
Post Funcion SCP_REPLACE_STRANGE_CHARS

He tenido el mismo problema. Es un poco tarde ahora, pero quería dejar esta solución en algún lado jeje.

Yo tuve que modificar un xml en ABAP para una transformación, pero como estabe en BIN, me traia siempre el # y entonces, al guardar la transformación no me lo tomaba.

Las sentencias REPLACE, SEARCH y demas tratamientos para las cadenas de caracteres no pueden utilizarse para estos caracteres especiales.

El problema era ese caracter #, asi que probando incansablemente, di con esta función:

DATA: vl_ligne TYPE string,

CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS'
EXPORTING
intext = vl_ligne (Variable con el caracter #)
replacement = 32 "Code ASCII: space -> (Valor con el que queres reemplazar el caracter especial, indicado en ASCII)
IMPORTING
outtext = vl_ligne Variable de Salida
EXCEPTIONS
invalid_codepage = 1
codepage_mismatch = 2
internal_error = 3
cannot_convert = 4
fields_not_type_c = 5
OTHERS = 6.

IF sy-subrc IS NOT INITIAL.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

Aqui quito los espacios para dejar a mi variable limpia
*Clear spaces
CONDENSE vl_ligne.

Así de simple he podido tratar mi linea de archivo y guardar el XML en ABAP sin problema.

La fuente donde tome es:


Saludos.

Jorge.

PD: Cuando vas a probar la función en la SE37, probablemente no veas que haga lo que dice. Tenes que codificarla y probarla con Debug en el programa o funcion que esteis programando.

Úlima edición por orellanajorge fecha: 18/12/15 a las 10:30:13.
Responder Con Cita
  #5  
Viejo 30/11/17, 13:23:25
degar7 degar7 is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 4
Gracias...

Muchas gracias me sirvio la funcion.
Responder Con Cita
  #6  
Viejo 12/11/19, 15:36:30
grandnomade grandnomade is offline
Junior Member
 
Fecha de Ingreso: ene 2011
Mensajes: 18

Muchas gracias, sirvió.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 08:10:23.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web