PDA

Ver la Versión Completa : COPIAR una estructura a un campo tipo texto con separaciones


Consultor Oscuro
25/06/10, 22:40:49
Hola a todos, tengo una duda en cuanto a la copia de datos de tipo caracter de una estructura a un campo de texto

Siendo ORIGEN una estructura con 6 campos tipo C de extensión 7, y Destino_txt un campo txt con 70 de longitud. Como copiar dichos campos en el campo de texto separándolos siempre por 2 espacios?

Pensé en utilizar el write pero no sé cómo usarlo eficazmente e indicarle los espacios de separación entre campo y campo. Saludos y gracias de antemano por la ayuda que puedan brindarme.

Neo_25
28/06/10, 14:08:09
A ver si te sirve esto,
es código, no se si habrá alguna función que lo haga:
* Estructura
TYPES: BEGIN OF ty_tyl_est,
campo1(7) TYPE c,
campo2(7) TYPE c,
campo3(7) TYPE c,
campo4(7) TYPE c,
campo5(7) TYPE c,
campo6(7) TYPE c,
END OF ty_tyl_est.
DATA: lw_est TYPE ty_tyl_est.
DATA: lv_destino_txt_1 TYPE char70,
lv_destino_txt_2 TYPE char70,
lv_destino_txt_3 TYPE char70.
* Rellenar estructura
CLEAR: lw_est.
lw_est-campo1 = 'Campo01'.
lw_est-campo2 = 'Campo02'.
lw_est-campo3 = 'Campo03'.
lw_est-campo4 = 'Campo04'.
lw_est-campo5 = 'Campo05'.
lw_est-campo6 = 'Campo06'.

* 1 espacio de separación
CONCATENATE
lw_est-campo1 lw_est-campo2
lw_est-campo3 lw_est-campo4
lw_est-campo5 lw_est-campo6
INTO lv_destino_txt_1 SEPARATED BY space.
WRITE lv_destino_txt_1.

* 2 espacios de separación
CONCATENATE
lw_est-campo1 space lw_est-campo2 space
lw_est-campo3 space lw_est-campo4 space
lw_est-campo5 space lw_est-campo6 space
INTO lv_destino_txt_2 SEPARATED BY space.
WRITE lv_destino_txt_2.

* 3 espacios de separación
CONCATENATE
lw_est-campo1 space space lw_est-campo2 space space
lw_est-campo3 space space lw_est-campo4 space space
lw_est-campo5 space space lw_est-campo6 space space
INTO lv_destino_txt_3 SEPARATED BY space.
WRITE lv_destino_txt_3.

Resultado:
Campo01 Campo02 Campo03 Campo04 Campo05 Campo06
Campo01 Campo02 Campo03 Campo04 Campo05 Campo06
Campo01 Campo02 Campo03 Campo04 Campo05 Campo06

Areli Sierra
02/07/10, 15:19:10
yo meteria los campos en su respectivas work areas y despues utilizaria en "concatenate"

concatenate workarea1 workarea2 workarea3

si lo quieres con espacio:


concatenate workarea1 ' ' workarea2 ' ' workarea3 .... into destino_txt.