find_codepage

in src/zgoog_cl_content_repo_gcs.clas.abap [0:0]


  METHOD find_codepage.
    CONSTANTS lc_newline TYPE x LENGTH 1 VALUE '0A'.

    DATA lv_buffer TYPE xstring.
    DATA lv_line   TYPE xstring.
    DATA lv_cline  TYPE string.
    DATA lv_part   TYPE string.

    lv_buffer = iv_data_buffer.
    SPLIT lv_buffer AT lc_newline INTO lv_line lv_buffer IN BYTE MODE.
    translate( EXPORTING iv_buffer   = lv_line
                         iv_codepage = '1100'
               CHANGING  cv_cline    = lv_cline ).

    rv_codepage = '1100'.

    " Get codepage information from data file
    IF lv_cline CP 'V0200*'.  " new ALF format
      WHILE lv_buffer IS NOT INITIAL.
        SPLIT lv_buffer AT lc_newline INTO lv_line lv_buffer IN BYTE MODE.
        translate( EXPORTING iv_buffer   = lv_line
                             iv_codepage = '1100'
                   CHANGING  cv_cline    = lv_cline ).

        IF lv_cline NP '#**'.
          CONTINUE.
        ENDIF.
        IF lv_cline CP '#*CODEPAGE=*'.
          SPLIT lv_cline AT '=' INTO lv_cline lv_part.
          IF lv_part CO '0123456789'.
            rv_codepage = lv_part.
          ENDIF.
          EXIT.
        ENDIF.
      ENDWHILE.

    ENDIF.