Текущее время: Пн, июл 21 2025, 15:04

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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