*la verdad es que no se lo que pretendes con ese codigo.*
*
*
*si haces un simple WRKTBL QSYS/QASCII*
veras que el caracter ebcdic hex C1 (A) en esta tabla se cambia por el
caracter ascii hex 41 que mira por donde es tambien una A mayuscula en el
pc.
*
*
*

 Tabla:   QASCII

 Entrada  Salida
   Hex     Hex
   B4       DC
   B5       DD
   B6       DE
   B7       DF
   B8       E0
   B9       E1
   BA       E2
   BB       E3
   BC       E4
   BD       E5
   BE       E6
   BF       E7
   C0       7B
   C1       41
   C2       42

*
*haciendo wrktbl con diferentes tablas veras como se convierte cada caracter
en ebcdic.*
*
*
*
*
*Saludos,*
*
*
*Guillermo Andrades*
*http://cpiSoftware.es*
*http://Modernizar.iSeries.es*
*
*
2010/9/27 JAIME LOPEZ <[email protected]>

>  Hola a todos
>
>
> Muchas gracias por la respuesta, codifique este fuente para obtener los
> caracteres y los cargo en un arreglo de 255 en el orden que los obtiene
> pensaba que era el valor decimal pero al validar con una tabla ASCII no
> coinciden.
>
> Este es el fuente.
>
> D ASCII           S              1    DIM(255)
> D EBCDIC          S              1    DIM(255)
> D WrkStr1         s            255
> D WrkStr2         s            255
> D N               s              3  0
> D                 DS
> D  BinValue               1      2B 0 INZ(0)
> D  BinChar                2      2
>  *
> C                   do        255           N
> C                   z-add     N             BinValue
> C                   eval      %subst(WrkStr1:N:1) = BinChar
> C                   enddo
>  *
> C                   move      WrkStr1       WrkStr2
>  *
> C                   CALL      'QDCXLATE'                           68
> C                   PARM      255           DataLen           5 0
> C                   PARM                    WrkStr1
> C                   PARM      'QEBCDIC'     XLateTable       10
> C                   PARM      'QSYS'        XLateTblLib      10
>  *
> C                   CALL      'QDCXLATE'                           68
> C                   PARM      255           DataLen
> C                   PARM                    WrkStr2
> C                   PARM      'QASCII'      XLateTable
> C                   PARM      'QSYS'        XLateTblLib
>  *
> C                   do        255           N
> C                   eval      EBCDIC(N) = %subst(WrkStr1:N:1)
> C                   eval      ASCII(N) = %subst(WrkStr2:N:1)
> C                   enddo
>  *
> c                   eval      *inlr = *on
>
> La idea era que de acuerdo a la posición del arreglo se retornaba el valor
> decimal del caracter que se desae buscar pero no coincide.
>
> Alguna Idea.
>
> Muchas gracias
>
> ------------------------------
> From: [email protected]
> Date: Mon, 27 Sep 2010 10:49:05 +0200
> Subject: Re: recuperar código ASCII desde RPG
> To: [email protected]
>
>
> *al programa qdcxlate le tienes que pasar una tabla de traduccion de
> caracteres. no dices cual le pasas.*
> *puedes ver las tablas que vienen con el sistema con*
> *WRKOBJPDM LIB(QSYS) OBJTYPE(*TBL)*
> *o cambiando qsys por qusrsys, etc.*
> *por ejemplo quiza esta*
> *QASCII   *TBL    EBCDIC TO ASCII TRANSLATE TABLE*
> *o esta*
> *QTCPASC  *TBL    TCP/IP EBCDIC-ASCII TRANSLATE TABLE*
> *
> *
> *
> *
> *Saludos,*
> *
> *
> *Guillermo Andrades*
> *http://cpiSoftware.es*
> *http://Modernizar.iSeries.es*
> *
> *
> *
> *
> *
> *
> 2010/9/27 JAIME LOPEZ <[email protected]>
>
>  Hola a todos
> Necesito de su valiosa ayuda!
>
> Cómo puedo recuperar el código ascii de un caracter desde un programa rpg?
> por ejemplo: la letra 'A' es ASCII es el valor en decimal 41. He intentado
> usar 'QDCXLATE'
>  pero no funciona con todos los caracteres como á, í, etc.
>
> Muchas gracias por la ayuda.
>
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a