Buenas.
Este es un ejemplo de Scott Klement. El truco esta el la palabra clave BASED al 
declarar una variable. No hay (hasta la versión que conozco) una función que 
haga el reverso de %ADDR. Pero no debería ser difícil implementar una librería 
con funciones que, dada una dirección de memoria, te devuelvan el entero, real, 
cadena, indicador, etc. que se almacena. Pero todo hecho con BASED

D Var1            S             12A
D Ptr             S               *
D Var2            S             12A   based(Ptr)

c                   eval      Ptr = %addr(Var1)

** This displays "Hello World!"
c                   eval      Var1 = 'Hello World!'
c                   dsply                   Var2

** This displays "World Hello!"
c                   eval      Var2 = 'World Hello!'
c                   dsply                   Var1

c                   eval      *inlr = *on
c                   return

Saludos 

Gustavo Adolfo Márquez Álvarez.
Departamento de Sistemas.
[email protected]
inforZitro, S. L.
Carretera de Níjar, nº 404.
04007 Almería (España).
Teléfono: 950 226 658.
Extensión: 148.
Fax: 950 223 620.


From: [email protected] 
Sent: Tuesday, June 17, 2014 5:19 AM
To: forum.help400 
Subject: Punteros en rpg

buenas noches agradeceré su apoyo en lo siguiente. Se que para obtener 
dirección de memoria de una variable de la siguiente manera: ptr=%DDR(var1) 
pero como hago lo contrario var1=%xxx(ptr) ósea como obtengo el valor o el 
contenido a partir de una posición de memoria?.

De antemano Gracias.
Roberto Palomino




--------------------------------------------------------------------------------
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a