4D v12.4

SET RESOURCE

Inicio

 
4D v12.4
SET RESOURCE

 

SET RESOURCE 


 

SET RESOURCE ( resTipo ; resNum ; resDatos {; resArchivo} )  
Parámetro Tipo   Descripción
resTipo  Cadena in Tipo de recurso (4 caracteres)
resNum  Entero largo in Número de recurso
resDatos  BLOB in Nuevo contenido del recurso
resArchivo  DocRef in Número de referencia del archivo de recursos o Archivo de recursos actual, si se omite

El comando SET RESOURCE crea o reescribe el recurso cuyo tipo y número se pasa en resTipo y resNum con los datos pasados en el BLOB resDatos.

Importante: debe pasar una cadena de 4 caracteres en resTipo.

Si no se puede escribir el recurso, la variable OK toma el valor 0 (cero).

Si pasa un número de referencia de archivo de recursos válido en resArchivo, el recurso se añade a ese archivo. Si no pasa resArchivo, el recurso se añade al primer archivo de la cadena de archivos de recursos (el último archivo de recurso abierto).

Nota: un recurso puede tener un tamaño de varios megabytes.

Recuerde que está trabajando con recursos de Mac OS. Cualquiera que sea la plataforma utilizada, los valores internos de los recursos como enteros largos son almacenados utilizando la ordenación de bytes ("byte ordering") de Macintosh. En Windows, los datos de los recursos estándar (tales como los recursos listas de cadenas y los recursos de imágenes) el orden de los bytes es invertido automáticamente cuando es necesario. Por otra parte, si crea y utiliza sus propias estructuras de datos internas, le corresponde a usted efectuar la inversión de octetos de los datos cuando escribe en un BLOB (por ejemplo, pasando Macintosh byte ordering a un comando tal como LONGINT TO BLOB).

Ejemplo  

Durante una sesión 4D, usted conserva las preferencias del usuario en las variables interproceso. Para guardar estas preferencias de sesión a sesión, puede:

1. Utilizar los comandos SAVE VARIABLES y LOAD VARIABLES para guardar y recuperar las variables en los documentos de variables en disco.

2. Utilice los comandos VARIABLE TO BLOB, BLOB TO DOCUMENT, DOCUMENT TO BLOB y BLOB TO VARIABLE para guardar y recuperar las variables en los documentos BLOB en disco.

3. Utilice los comandos VARIABLE TO BLOB, SET RESOURCE, GET RESOURCE y BLOB TO VARIABLE para guardar y recuperar las variables en archivos de recursos en disco.

El siguiente es un ejemplo del tercer método.

En el escribe:

  ` Método de base On Exit
 If(Test path name("DB_Prefs")#Is a document)
    $vhResArchivo:=Create resource file("DB_Prefs")
 Else
    $vhResArchivo:=Open resource file("DB_Prefs")
 End if
 If(OK=1)
    VARIABLE TO BLOB(◊vbAutoRepite;$vxPrefData)
    VARIABLE TO BLOB(◊vlCurTabla;$vxPrefData;*)
    VARIABLE TO BLOB(◊asDfltOpcion;$vxPrefData;*)
  ` etc...
    SET RESOURCE("PREF";26500;$vxPrefData;$vhResArchivo)
    CLOSE RESOURCE FILE($vhResArchivo)
 End if


En el Método On Startup Database escribe:

  ` Método de base On Startup
 C_BOOLEAN(◊vbAutoRepite)
 C_LONGINT(◊vlCurTabla)
 $vbDone:=False
 $vhResArchivo:=Open resource file("DB_Prefs")
 If(OK=1)
    GET RESOURCE("PREF";26500;$vxPrefData;$vhResArchivo)
    If(OK=1)
       $vlOffset:=0
       BLOB TO VARIABLE($vxPrefData;◊vbAutoRepite;$vlOffset)
       BLOB TO VARIABLE($vxPrefData;◊vlCurTabla;$vlOffset)
       BLOB TO VARIABLE($vxPrefData;◊asDfltOpcion;$vlOffset)
  ` etc.
       $vbDone:=True
    End if
    CLOSE RESOURCE FILE($vhResArchivo)
 End if
 If(Not($vbDone))
    ◊vbAutoRepetir:=False
    ◊vlCurTabla:=0
    ARRAY STRING(127;◊asDfltOpcion;0)
 End if

Si el recurso se ha escrito, la variable sistema OK toma el valor 1, de lo contrario toma el valor 0 (cero).

 
PROPIEDADES 

Producto: 4D
Tema: Recursos
Número 509

Este comando modifica la variable sistema OK

 
HISTORIA 

Creado por: 4D v6

 
VER TAMBIÉN 

Comandos BLOB
GET RESOURCE