Cómo convertir un INTEGER a CHAR?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • lhidalgo
    Junior Member
    • jul
    • 4

    #1

    Cómo convertir un INTEGER a CHAR?

    hola necesitaria convertir un numero entero a su correspondiente caracter ascii.

    ej : tengo una variable entera con el 45 y lo quiero convertir a su correspondiente valor Acii que es '-' ( guion del medio )

    probe con este codigo pero me tira un error al compilar .

    "The length of "X" in bytes must be a multiple of the size of a Unicode "

    data : i type i value 45.
    data : x type x.
    field-symbols : <fc> type c.
    move i to x.
    assign x to <fc> casting type c.
    move <fc> to c.
    write c.
  • ana_24
    Junior Member
    • ene
    • 13

    #2
    Hola!!

    una vez encontre esto por la red y me lo guarde por si alguna vez lo necesitaba. La verdad que no lo he probado,pero por si te sirve de ayuda


    FUNCTION Z_CHARACTER_TO_ASCII_CODE.
    *"----------------------------------------------------------------------
    *"*"Interfase local
    *" IMPORTING
    *" REFERENCE(FI_CHARACTER) TYPE C
    *" EXPORTING
    *" REFERENCE(FE_ASCII_CODE_DEC) TYPE I
    *" REFERENCE(FE_ASCII_CODE_HEX) TYPE C
    *"----------------------------------------------------------------------
    field-symbols <FS> type x.
    *Have to use CASTING here to purposely force SAP to convert the
    *character to an equivalent HEX value (using ASCII chart).
    *Note that CASTING feature is not available prior release 4.6
    assign fi_character(1) to <FS> casting.
    *The type of the destination field will cause SAP to determine which
    *type (Decimal/Hexadecimal) of ASCII code should be converted:
    * X -> I gives Dec value
    * X -> C gives Hex value
    fe_ascii_code_dec = <FS>.
    fe_ascii_code_hex = <FS>.


    ENDFUNCTION.

    Comentario

    • lhidalgo
      Junior Member
      • jul
      • 4

      #3
      Gracias Ana .... modifique esta linea data : x(16) type x. y me funciono


      REPORT ztest_alg .

      DATA : varbartextin(18) TYPE c,
      largo TYPE i.

      varbartextin = '34' .

      *saca espacios en blanco
      *SHIFT varbartextin LEFT DELETING LEADING space .

      largo = varbartextin+0(2) .

      largo = largo + 33 .

      data: c(16) type c.

      data : i type i .

      i = largo.
      data : x(16) type x.
      field-symbols : <fc> type c.
      move i to x.
      assign x to <fc> casting type c.
      move <fc> to c.
      write c+15(1).

      BREAK-POINT.

      Comentario

      • mcartamil
        Junior Member
        • ago
        • 12

        #4
        Para de chamuyar luissssssssssssssssss!!!!

        Comentario

        • titanium
          Junior Member
          • feb
          • 1

          #5
          no funciona

          eso os funciona verdaderamente??? lo estoy probando y no funciona...

          Comentario

          • Neo_25
            Member
            • jun
            • 51

            #6
            Sí funciona:


            Código:
            DATA: fi_character      TYPE c VALUE 'A', "carácter
                  fe_ascii_code_dec TYPE i,           "ASCII en decimal
                  fe_ascii_code_hex TYPE c.           "ASCII en hexadecimal
            
            FIELD-SYMBOLS <fs> TYPE x.
            
            ASSIGN fi_character(1) TO <fs> CASTING.
            
            fe_ascii_code_dec = <fs>. "obtenemos el ASCII en decimal
            fe_ascii_code_hex = <fs>. "obtenemos el ASCII en hexadecimal
            
            WRITE: 'Carácter:           ', fi_character.
            WRITE: / 'En decimal:', fe_ascii_code_dec.
            WRITE: / 'En hexadecimal:     ', fe_ascii_code_hex.

            Saludos

            Comentario

            • Ariel-StaFe
              Senior Member
              • nov
              • 321

              #7
              Convertir CHAR a ASCII en ECC 60 ?

              Estimados:
              Yo tenía una función Z tal cual comentaron en este "Tema", y funcionaba perfecto en Version 4.7
              Migramos a ECC 60 y dejó de funcionar.
              Por ejemplo la letra "A" que tiene el valor decimal '65', con esta nueva versión la misma función me devuelve el valor decimal '16.640'
              Alguien tiene el mismo problema ?,
              Tiene algo que ver "UNICODE" ?..
              o "CODEPAGE" ?
              ya que tuve otro tipos de problemas tambien similares, cosas que antes funcionaban y ahora no. (con la nueva version)
              Ss
              Ariel-StaFe
              Analista Programador Abap Senior
              Santa Fe Capital
              Pcia de Santa Fe
              Argentina

              Comentario

              • Ariel-StaFe
                Senior Member
                • nov
                • 321

                #8
                Problema en conv CHAR a ASCII decimal Resuelto

                Estimados:
                Sigo sin entender por que dejó de funcionar, pero por si le sucede a alguien mas, la manera que lo resolví es tomar la conversion en Hexadecimal y luego convertirla de hexa a ascii decimal.
                Ss
                Ariel-StaFe
                Analista Programador Abap Senior
                Santa Fe Capital
                Pcia de Santa Fe
                Argentina

                Comentario

                Trabajando...