Текущее время: Ср, июл 30 2025, 22:12

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: файлы ZIP как читать?
СообщениеДобавлено: Вт, янв 02 2007, 15:57 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
Есть ли у кого пример как работать с ZIP файлами?
Например, у меня csv лежит в зипе и я пытаюсь выдрать его содержимое.

Файл читаю GUI_UPLOAD. Пытаюсь применить cl_abap_ungzip_binary_stream и CL_ABAP_UNGZIP_TEXT_STREAM.

Что-то не получается.

:cry:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: файлы ZIP как читать?
СообщениеДобавлено: Вт, янв 02 2007, 16:09 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Galka написала:
Что-то не получается.


Но ведь что-то и работает?!

Можно было бы зайти на SAP Network и в результатах поиска https://www.sdn.sap.com/irj/sdn/advance ... at=sdn_all в первом же сообщении наткнуться на документ https://www.sdn.sap.com/irj/sdn/go/port ... 7aff37726d с большим примером. А еще там было много и других тем о zip в abap.

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: файлы ZIP как читать?
СообщениеДобавлено: Вт, янв 02 2007, 18:09 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
Tetty написал:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c6b79908-0a01-0010-8ca0-b77aff37726d с большим примером.


Жестокий пример :?

Зато поиск дал некоторые зацепки, не связанные с CL_ABAP_UNGZIP...


Спасибо, Tetty, за наводку :)

Если у кого все же есть "живой" пример с GUI_UPLOAD - велкам

вот нашла там же


Code:
TYPES: BEGIN OF t_ytest_bin,
        description TYPE xstring,
       END OF t_ytest_bin.

DATA: wf_filetab TYPE filetable .
DATA: wf_filerc TYPE i ,
      wf_filename TYPE string ,
      wf_path TYPE string ,
      wf_full_path TYPE string ,
      wf_file_length TYPE i .

DATA: wf_extension TYPE string ,
      wf_fname TYPE string .
DATA: BEGIN OF int_tab1 OCCURS  0,
        int_txt(1000) TYPE x ,
      END OF int_tab1.

DATA: upd_tab TYPE t_ytest_bin OCCURS 0. "STANDARD TABLE OF ytest_bin .

DATA: wa_upd_tab LIKE LINE OF upd_tab .
DATA: temp_xstring TYPE xstring .
PARAMETERS: p_file LIKE file_table-filename LOWER CASE  VISIBLE LENGTH
80  .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .

  PERFORM browse_file CHANGING p_file .

AT SELECTION-SCREEN ON p_file .

  IF p_file IS INITIAL .
    MESSAGE e398(00) WITH
       'Enter Filename and path' .
  ENDIF.

START-OF-SELECTION .

  CLEAR wf_filename .
  MOVE: p_file TO wf_filename .
  PERFORM load_file USING wf_filename .
  PERFORM save_file_contents .

*&---------------------------------------------------------------------*
*&      Form  browse_file
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_P_FILE  text
*----------------------------------------------------------------------*
FORM browse_file  CHANGING p_p_file.
  CLEAR wf_filename .
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = 'Select the File'
*    DEFAULT_EXTENSION       = cl_gui_frontend_services=>FILETYPE_TEXT
*    DEFAULT_FILENAME        =
*     FILE_FILTER             = cl_gui_frontend_services=>FILETYPE_EXCEL
*    INITIAL_DIRECTORY       =
*    MULTISELECTION          =
    CHANGING
      file_table              = wf_filetab
      rc                      = wf_filerc
*    USER_ACTION             =
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5
          .
  IF sy-subrc <> 0.
    MESSAGE e398(00) WITH 'Error Opening File' .
  ELSE .
    READ TABLE wf_filetab INDEX 1 INTO p_file .
  ENDIF.

ENDFORM.                    " browse_file
*&---------------------------------------------------------------------*
*&      Form  load_file
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WF_FILENAME  text
*----------------------------------------------------------------------*
FORM load_file  USING    p_wf_filename.
  CLEAR int_tab1 .
  REFRESH int_tab1 .
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                     = p_wf_filename
      filetype                     = 'BIN'
IMPORTING
   filelength                      = wf_file_length
*   HEADER                          =
    TABLES
      data_tab                     = int_tab1
   EXCEPTIONS
     file_open_error               = 1
     file_read_error               = 2
     no_batch                      = 3
     gui_refuse_filetransfer       = 4
     invalid_type                  = 5
     no_authority                  = 6
     unknown_error                 = 7
     bad_data_format               = 8
     header_not_allowed            = 9
     separator_not_allowed         = 10
     header_too_long               = 11
     unknown_dp_error              = 12
     access_denied                 = 13
     dp_out_of_memory              = 14
     disk_full                     = 15
     dp_timeout                    = 16
     OTHERS                        = 17
            .

  IF sy-subrc <> 0.
    MESSAGE e398(00) WITH 'File may be open - Error loading' .
  ENDIF.

ENDFORM.                    " load_file
*&---------------------------------------------------------------------*
*&      Form  save_file_contents
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM save_file_contents .
  DATA: w_upd_tab LIKE LINE OF upd_tab.

  CLEAR :wa_upd_tab , temp_xstring .

  LOOP AT int_tab1 .
    CONCATENATE temp_xstring int_tab1-int_txt
        INTO temp_xstring  IN BYTE MODE.
  ENDLOOP .
  IF NOT temp_xstring IS INITIAL .
******* optional
    TRY.
        CALL METHOD cl_abap_gzip=>compress_binary
          EXPORTING
            raw_in   = temp_xstring
          IMPORTING
            gzip_out = wa_upd_tab-description.
      CATCH cx_parameter_invalid_range .
      CATCH cx_sy_buffer_overflow .
      CATCH cx_sy_compression_error .
    ENDTRY.

    APPEND wa_upd_tab TO upd_tab .
  ENDIF .

  IF NOT upd_tab IS INITIAL .
    LOOP AT upd_tab INTO wa_upd_tab.
      WRITE: / w_upd_tab-description.
    ENDLOOP.
*    MODIFY ytest_bin FROM TABLE upd_tab .
*    IF sy-subrc EQ 0 .
*      MESSAGE i398(00) WITH wf_filename ` Saved!`.
*    ENDIF .
  ENDIF.
ENDFORM.                    " save_file_contents


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB