COPIAR una estructura a un campo tipo texto con separaciones

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Consultor Oscuro
    Member
    • jun
    • 42

    #1

    COPIAR una estructura a un campo tipo texto con separaciones

    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
    Member
    • jun
    • 51

    #2
    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

    Comentario

    • Areli Sierra
      Junior Member
      • sep
      • 15

      #3
      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.

      Comentario

      Trabajando...