Problema con Hexadecimal

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Marc Espinosa
    Member
    • ago
    • 73

    #1

    Problema con Hexadecimal

    Buenas tardes foreros,

    tengo 2 preguntas:

    1.Problema una conversión de datos de XSTRING A SOLIX, me explico:

    Tengo una tabla de tipo SOLIX (RAW255) que la debo de ir llenando con lo que recibo de esta función: SCMS_STRING_TO_XSTRING.

    Dicha función me devuelve una variable del tipo XSTRING, y al asignarsela a la tabla lógicamente no me deja por ser diferentes formatos.

    Se os ocurre como asignar XSTRING a RAW255?


    2. En una tabla de tipo SOLIX (RAW255), porque me rellena con 0's al final?
    esto me esta dando problemas para un proceso posterior, se os ocurre alguna forma de limpiar estos ceros del final??


    Gracias
    Saludos
    Marc Espinosa
  • DCErick
    Moderator
    • mar
    • 1090

    #2
    Trata con:

    Código:
    CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
         BUFFER = v_de_xstring
    TABLES
         BINARY_TAB = DATA_TAB.
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    • Marc Espinosa
      Member
      • ago
      • 73

      #3
      Originalmente publicado por DCErick
      Trata con:

      Código:
      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
      EXPORTING
           BUFFER = v_de_xstring
      TABLES
           BINARY_TAB = DATA_TAB.
      Muchas gracias , el lunes lo probaré

      Saludos
      Saludos
      Marc Espinosa

      Comentario

      • Marc Espinosa
        Member
        • ago
        • 73

        #4
        Buenos días,
        los 0's no han desaparecido , os cuento con código lo que estoy haciendo:



        LOOP AT pt_string.
        CLEAR ld_string.
        * Se prepara todo en un string
        CONCATENATE ld_string
        pt_string-line
        * cl_abap_char_utilities=>cr_lf
        INTO ld_string.

        * Se convierte en hexadecimal
        CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
        EXPORTING
        text = ld_string
        * MIMETYPE = ' '
        * ENCODING =
        IMPORTING
        buffer = ld_xstring
        EXCEPTIONS
        failed = 1
        OTHERS = 2
        .

        IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ELSE.

        * Se transfiere a binario
        CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
        buffer = ld_xstring
        append_to_table = 'X'
        IMPORTING
        output_length = ld_lenght
        TABLES
        binary_tab = pt_contents_hex.
        * Se devuelve el tamaño
        ADD ld_lenght TO pd_size.

        ENDIF.
        ENDLOOP.


        El problema reside en el contenido de la tabla pt_contents_hex (pt_contents_hex STRUCTURE solix), tengo el texto en hexadecimal seguido de 0's.
        Se te ocurre alguna manera de poder solucionarlo?

        En la variable ld_xstring, me aprece bien el contenido pero como tengo que meterlo en un tabla tipo solix, me veo obligado a hacer la llamada a 'SCMS_XSTRING_TO_BINARY', hay otra opción?

        Muchas gracias
        Saludos
        Marc Espinosa

        Comentario

        Trabajando...