Subida de Archivo

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • alterpeke
    Member
    • jul
    • 77

    #1

    Subida de Archivo

    Buenas!

    Tengo un problema con la funcion gui_upload:

    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = lv_log
    filetype = 'BIN'
    TABLES
    data_tab = pt_alic

    En la tabla pt_alic me carga los datos pero desordenados, el archivo es un texto plano donde los campos estan separados por ";"

    Se me ocurrio declarar la pt_alic como una tabla de un solo campo de 255 caracteres y luego procesar cada campo separandolos.
    Pero este archivo me va a traer decenas de miles de registros y temo que haciendo eso se me vaya la performance al demonio.

    Agradezco cualquier sugerencia.

    Saludos.

    Alterpeke
    Cuando El Sabio Apunta a La Luna... El Necio Solo Logra Ver El Dedo.
  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    hola alterpeke, probaste con setear el parametro HAS_FIELD_SEPARATOR ?
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • alterpeke
      Member
      • jul
      • 77

      #3
      Si probe y eso es para cuando los campos estan separados por tabuladores.
      Mis campos estan separados por ;

      Voy a tener que tratarlo manualmente linea por linea. otra cosa no se me ocurre

      saludos
      Cuando El Sabio Apunta a La Luna... El Necio Solo Logra Ver El Dedo.

      Comentario

      • mysmb2
        Senior Member
        • ene
        • 406

        #4
        si, tenes razon vas a tener que loopear y remplazar todos los char ; por # de la tabla interna de una linea usando la sentencia replace.
        Saludos
        Sebastián Chiavia
        http://www.programacionabap.com.ar

        Comentario

        • alterpeke
          Member
          • jul
          • 77

          #5
          Mira lo que estoy haciendo es tomar la linea y hacer un SPLIT separando los campos por ;

          Colocando cada campo en la estructura que luego voy a apendear en la tabla interna para el proceso de esos datos. Me queda algo asi:

          loop at pt_upl into ls_upl.

          split ls_upl-line at ';' into ls_alic-ze_fepubli
          ls_alic-ze_fevigd
          ls_alic-ze_fevigh
          ls_alic-cuit
          ls_alic-ztcontribu
          ls_alic-ztalta
          ls_alic-zcalicuo
          lv_alic.

          replace ',' with '.' into lv_alic.
          move lv_alic to ls_alic-qsatz.

          append ls_alic to pt_alic.

          endloop.


          Saludos y muchas gracias!!
          Cuando El Sabio Apunta a La Luna... El Necio Solo Logra Ver El Dedo.

          Comentario

          Trabajando...