mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
use global class
This commit is contained in:
parent
f76050e71a
commit
87000cbf65
|
@ -2,83 +2,6 @@
|
||||||
*& Include ZABAPGIT_ZLIB
|
*& Include ZABAPGIT_ZLIB
|
||||||
*&---------------------------------------------------------------------*
|
*&---------------------------------------------------------------------*
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
* CLASS lcl_zlib_convert DEFINITION
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
*
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
CLASS lcl_zlib_convert DEFINITION FINAL.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
CLASS-METHODS:
|
|
||||||
hex_to_bits
|
|
||||||
IMPORTING iv_hex TYPE xsequence
|
|
||||||
RETURNING VALUE(rv_bits) TYPE string,
|
|
||||||
bits_to_int
|
|
||||||
IMPORTING iv_bits TYPE clike
|
|
||||||
RETURNING VALUE(rv_int) TYPE i,
|
|
||||||
int_to_hex
|
|
||||||
IMPORTING iv_int TYPE i
|
|
||||||
RETURNING VALUE(rv_hex) TYPE xstring.
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_zlib_convert DEFINITION
|
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
* CLASS lcl_zlib_convert IMPLEMENTATION
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
*
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
CLASS lcl_zlib_convert IMPLEMENTATION.
|
|
||||||
|
|
||||||
METHOD hex_to_bits.
|
|
||||||
|
|
||||||
DATA: lv_x TYPE x LENGTH 1,
|
|
||||||
lv_c TYPE c LENGTH 1,
|
|
||||||
lv_bit TYPE i,
|
|
||||||
lv_hex TYPE xstring.
|
|
||||||
|
|
||||||
|
|
||||||
lv_hex = iv_hex.
|
|
||||||
WHILE NOT lv_hex IS INITIAL.
|
|
||||||
lv_x = lv_hex.
|
|
||||||
DO 8 TIMES.
|
|
||||||
lv_bit = sy-index.
|
|
||||||
GET BIT lv_bit OF lv_x INTO lv_c.
|
|
||||||
CONCATENATE rv_bits lv_c INTO rv_bits.
|
|
||||||
ENDDO.
|
|
||||||
lv_hex = lv_hex+1.
|
|
||||||
ENDWHILE.
|
|
||||||
|
|
||||||
ENDMETHOD. "hex_to_bits
|
|
||||||
|
|
||||||
METHOD bits_to_int.
|
|
||||||
|
|
||||||
DATA: lv_c TYPE c LENGTH 1,
|
|
||||||
lv_bits TYPE string.
|
|
||||||
|
|
||||||
lv_bits = iv_bits.
|
|
||||||
|
|
||||||
WHILE NOT lv_bits IS INITIAL.
|
|
||||||
lv_c = lv_bits.
|
|
||||||
rv_int = rv_int * 2.
|
|
||||||
rv_int = rv_int + lv_c.
|
|
||||||
lv_bits = lv_bits+1.
|
|
||||||
ENDWHILE.
|
|
||||||
|
|
||||||
ENDMETHOD. "bits_to_int
|
|
||||||
|
|
||||||
METHOD int_to_hex.
|
|
||||||
|
|
||||||
DATA: lv_x TYPE x.
|
|
||||||
|
|
||||||
|
|
||||||
lv_x = iv_int.
|
|
||||||
rv_hex = lv_x.
|
|
||||||
|
|
||||||
ENDMETHOD. "int_to_hex
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_zlib_convert IMPLEMENTATION
|
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_zlib_stream DEFINITION
|
* CLASS lcl_zlib_stream DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -126,7 +49,7 @@ CLASS lcl_zlib_stream IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD take_int.
|
METHOD take_int.
|
||||||
|
|
||||||
rv_int = lcl_zlib_convert=>bits_to_int( take_bits( iv_length ) ).
|
rv_int = zcl_abapgit_zlib_convert=>bits_to_int( take_bits( iv_length ) ).
|
||||||
|
|
||||||
ENDMETHOD. "take_int
|
ENDMETHOD. "take_int
|
||||||
|
|
||||||
|
@ -140,7 +63,7 @@ CLASS lcl_zlib_stream IMPLEMENTATION.
|
||||||
WHILE strlen( rv_bits ) < iv_length.
|
WHILE strlen( rv_bits ) < iv_length.
|
||||||
IF mv_bits IS INITIAL.
|
IF mv_bits IS INITIAL.
|
||||||
lv_x = mv_compressed(1).
|
lv_x = mv_compressed(1).
|
||||||
mv_bits = lcl_zlib_convert=>hex_to_bits( lv_x ).
|
mv_bits = zcl_abapgit_zlib_convert=>hex_to_bits( lv_x ).
|
||||||
mv_compressed = mv_compressed+1.
|
mv_compressed = mv_compressed+1.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
lv_left = iv_length - strlen( rv_bits ).
|
lv_left = iv_length - strlen( rv_bits ).
|
||||||
|
@ -334,7 +257,7 @@ CLASS lcl_zlib IMPLEMENTATION.
|
||||||
|
|
||||||
lv_bit = go_stream->take_bits( 1 ).
|
lv_bit = go_stream->take_bits( 1 ).
|
||||||
CONCATENATE lv_bits lv_bit INTO lv_bits.
|
CONCATENATE lv_bits lv_bit INTO lv_bits.
|
||||||
lv_code = lcl_zlib_convert=>bits_to_int( lv_bits ).
|
lv_code = zcl_abapgit_zlib_convert=>bits_to_int( lv_bits ).
|
||||||
lv_count = io_huffman->get_count( lv_len ).
|
lv_count = io_huffman->get_count( lv_len ).
|
||||||
|
|
||||||
IF lv_code - lv_count < lv_first.
|
IF lv_code - lv_count < lv_first.
|
||||||
|
@ -686,7 +609,7 @@ CLASS lcl_zlib IMPLEMENTATION.
|
||||||
lv_symbol = decode( go_lencode ).
|
lv_symbol = decode( go_lencode ).
|
||||||
|
|
||||||
IF lv_symbol < 256.
|
IF lv_symbol < 256.
|
||||||
lv_x = lcl_zlib_convert=>int_to_hex( lv_symbol ).
|
lv_x = zcl_abapgit_zlib_convert=>int_to_hex( lv_symbol ).
|
||||||
CONCATENATE gv_out lv_x INTO gv_out IN BYTE MODE.
|
CONCATENATE gv_out lv_x INTO gv_out IN BYTE MODE.
|
||||||
ELSEIF lv_symbol = 256.
|
ELSEIF lv_symbol = 256.
|
||||||
EXIT.
|
EXIT.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user