PDA

Ver la Versión Completa : necesito una funcion para agregar ceros a izquierda a un char


matiaspostay
23/01/08, 17:11:14
Hola, necesito una funcion para agregar ceros a izquierda a un char y otra para quitar ceros a izquierda a un char (MATNR). Espero me puedan ayudar, muchas gracias :)

gcid
23/01/08, 17:19:33
existen estas funciones.
CONVERSION_EXIT_ALPHA_INPUT: llena con 0 la izq. '000000001'.
CONVERSION_EXIT_ALPHA_OUTPUT: borra 0 a la izq.
ojala te sirvan.
salu2.

matiaspostay
24/01/08, 10:31:13
existen estas funciones.
CONVERSION_EXIT_ALPHA_INPUT: llena con 0 la izq. '000000001'.
CONVERSION_EXIT_ALPHA_OUTPUT: borra 0 a la izq.
ojala te sirvan.
salu2.

No me sirve ya que es un char y cuando pongo una letra no me quita/agrega los ceros. Ej: 00067U3064

robert_milan
24/01/08, 10:37:17
dale un:

loop at it_File.
SHIFT it_file-matnr RIGHT DELETING TRAILING SPACE.
Do.
replace space with '0 ' into it_file-matnr.
if sy-subrc <> 0.
exit.
endif.
enddo.
endloop.

espero te sirva

conrad10ar
24/01/08, 13:25:46
La manera más fácil es haciendo un UNPACK nombredevariable, para que te agregue los 0, y un PACK para que los elimine.

Saludos:)

jgeonas
24/01/08, 16:47:31
WRITE im_data_new-bednr TO l_kostl RIGHT-JUSTIFIED.
TRANSLATE l_kostl USING ' 0'.

jflinaj
31/01/08, 09:48:14
si el problema para usar las funciones que te ha dicho gcid por que es un texto no tienes mas convertirlo a integer y luego aplicar la funcion.
MOVE STRCLAVE(char3) TO INTCLAVE(int).
lo de las parentesis no creo que es necesario ponerlo pero cada variable si que tiene del tipo correspondiente.
y luego aplicar la funcion con la variable integer.

abapconsultoria
31/01/08, 11:09:50
Que tal con la funcion instruccion OVERLAY

OVERLAY text1 WITH text2 [ONLY pattern].


Saludos.

zonanet
07/02/08, 16:05:07
Saludos a todo el foro:

Yo necesité hacer lo mismo (quitar los ceros) y la manera más sencilla y rápida fue con el PACK, gracias a conrad10ar por la información.

No he utilizado el unpack, pero les haré llegar mis resultados..


:D