MEMVARBLOCK( )

 Devuelve un bloque de código de asignación/lectura para una variable de memoria dada

Sintaxis

     MEMVARBLOCK(<cNombreVarmem>) –> bBloqueVarmem

Argumentos

<cNombreVarmem> es el nombre de la variable a la que hace referencia el bloque de lectura/escritura, especificada como cadena de caracteres.

Devuelve

MEMVARBLOCK() devuelve un bloque de código que, al evaluarse, permite asignar u obtener el valor de la variable de memoria especificada. Si no existe la variable, MEMVARBLOCK() devuelve NIL.

Descripción

El bloque de código creado por MEMVARBLOCK() realiza dos operaciones, dependiendo de si se pasa un argumento al bloque de código cuando se evalúa. Si se evalúa con un argumento, asigna ese valor a <cNombreVarmem>. Si se evalúa sin argumento, recupera el valor de <cNombreVarmem>.

Notas

     ¦  MEMVARBLOCK() sólo permite crear bloques de asignación/lectura de variables de nombres conocidos durante la ejecución. MEMVARBLOCK(), por tanto, no puede utilizarse para crear bloques de asignación/lectura de variables locales o estáticas. La misma restricción se aplica a la creación de bloques mediante el operador de macro (&).

Ejemplos

     ¦  Este ejemplo compara MEMVARBLOCK() con un bloque de código creado con el operador de macro (&). Observe que la utilización de MEMVARBLOCK() le permite evitar la velocidad y el tamaño iniciales del operador de macro:

        PRIVATE var := “Esto es una cadena”

        //

        // Bloque de asignación/lectura definido mediante

        // el operador de macro

        bLeerEscr := &( “{ valEst;

              IF( valEst == NIL, var, var := valEst ) }” )

        // Bloque de asignación/lectura definido mediante

        //MEMVARBLOCK()

        // el bLeerEscr creado aquí es el equivalente

        // funcional del bLeerEscr anterior

        bEstObt := MEMVARBLOCK(“var”)

 Ficheros:  La biblioteca asociada es DPXBASE.CH.