*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.

