PDA

Ver la Versión Completa : quitar almohadilla en un texto


Paola79
05/08/11, 15:03:17
Hola a todos,

Tenmos el siguiente problema:

En el campo de la BSEG SGTXT tenemos el texto de la siguiente forma (no se da en todos los casos)

CAMAPAÑA DE PUBLICIDAD ## MES DE ABRIL.

Lo que queremos remplazar es ## por espacio, ya que las almohadillas en el fichero de la AL11 lo toma como salto de linea.

Lo hemos probado todo para quitarlo pero no nos reconoce el campo.

Alguien me puede echar una mano.

Muchas gracias de antemano,

Un saludo:

daniel1050
05/08/11, 16:21:50
Hola!

Esto que es? un formulario?

pancho6102
05/08/11, 18:44:52
No entendi bien que es lo que hacen.

me imagino que leen registros de la bseg para despues formar un archivo en algun directorio de la AL11 y lo hacen primero llenado una tabla interna.

pues lo que se me ocurre es recorrer la tabla antes de hacer el fichero y hacer esta modificacion:

loop at it-bseg into wa_bseg.
REPLACE '#' WITH SPACE INTO wa_bseg-SGTXT.
modify it_bseg from wa_bseg
endloop.

esto es lo que me imagino ojala y puedas explicarlo mejor.

Saludos!!.

fdelacruz
05/08/11, 18:52:30
Como dice pancho6102, esa sería una opción, ahora si está mal de que se registre así, podrías hacer una validación al momento de la contabilización.

Saludos!

Paola79
08/08/11, 07:17:04
Hola buenos días,

Perdon por la tardanza, voy a intentar explicarlo mejor.

El problema esque tenemos esque subimos al servidor (AL11) con todos las posiciones de la bseg. Hay posiciones que en el texto se encuentra la # lo reconoce como salto de linea, un intro. Estamos probando de todo y no lo reconoce. Como el replace que indicais más arriba, leer toda la cadena de caracteres etc...
A ver si a alguien se le ocurre alguna otra cosa.

Un saludo y muchas gracias de antemano

Alfredosite
08/08/11, 18:19:34
Hola buenos días,

Perdon por la tardanza, voy a intentar explicarlo mejor.

El problema esque tenemos esque subimos al servidor (AL11) con todos las posiciones de la bseg. Hay posiciones que en el texto se encuentra la # lo reconoce como salto de linea, un intro. Estamos probando de todo y no lo reconoce. Como el replace que indicais más arriba, leer toda la cadena de caracteres etc...
A ver si a alguien se le ocurre alguna otra cosa.

Un saludo y muchas gracias de antemano

Hola intenta resolverlo con esta instrucción:

DATA: v_bseg_descr TYPE string,
lv_simbol TYPE c value CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.

v_bseg_descr = bseg-sgtxt. "Es tu cadena con tu simbolo '#'
REPLACE ALL OCCURRENCES OF lv_simbol IN v_bseg_descr WITH space."replac
CONDENSE v_bseg_descr.

Nos cuentas si te sirvió,
AP.

Paola79
09/08/11, 08:08:08
Al final hemos encontrado esto y funciona.

DATA: lv_ctab(1) TYPE c.
DATA: lv_fin(1) TYPE c.

FIELD-SYMBOLS <f_hex> TYPE x.

ASSIGN lv_ctab TO <f_hex> CASTING.

<f_hex> ='0A'.

ASSIGN lv_fin TO <f_hex> CASTING.

<f_hex> ='0D'.

REPLACE ALL OCCURRENCES OF lv_ctab IN ls_tabla-sgtxt WITH ' '.

REPLACE ALL OCCURRENCES OF lv_fin IN ls_tabla-sgtxt WITH ' '.

Un saludo y muchas gracais