4D v12.4

ECRIRE RESSOURCE

Accueil

 
4D v12.4
ECRIRE RESSOURCE

 

ECRIRE RESSOURCE 


 

ECRIRE RESSOURCE ( resType ; resNum ; resDonnées {; resFichier} )  
Paramètre Type   Description
resType  Chaîne in Type de ressource (4 caractères)
resNum  Entier long in Numéro de ressource
resDonnées  BLOB in Nouveau contenu de la ressource
resFichier  RefDoc in Numéro de référence de fichier de ressources ou Fichier de ressources courant si omis

La commande ECRIRE RESSOURCE crée ou réécrit la ressource dont vous avez passé le type et le numéro dans resType et resNum avec les données passées dans le BLOB resDonnées.

Important : Vous devez passer une chaîne de 4 caractères dans resType.

Si la ressource ne peut pas être écrite, la variable système OK prend la valeur 0 (zéro).

Si vous passez un numéro de référence de fichier de ressources valide dans resFichier, la ressource est ajoutée dans ce fichier. Si vous ne passez pas le paramètre resFichier, la ressource est ajoutée au premier des fichiers de la chaîne des fichiers de ressources (c'est-à-dire le dernier fichier de ressources ouvert).

Note : La taille d'une ressource peut atteindre plusieurs mega-octets.

Rappelez-vous que vous travaillez avec des ressources issues de Mac OS. Quelle que soit la plate-forme utilisée, les valeurs internes des ressources comme des entiers longs sont stockées avec l'ordre d'octets ("byte ordering") Mac OS. Sous Windows, pour les données des ressources standard (telles que les ressources listes de chaînes et les ressources images) l'ordre des octets est automatiquement inversé ("byte swapping") si nécessaire. D'un autre côté, si vous créez et utilisez vos propres structures internes de données, c'est à vous d'effectuer l'inversion d'octets des données lorsque vous les écrivez dans un BLOB (par exemple en passant Ordre octets Macintosh à une commande telle que ENTIER LONG VERS BLOB).

Exemple  

Pendant une session 4D, vous conservez des préférences utilisateur dans des variables interprocess. Pour sauvegarder ces préférences d'une session sur l'autre, vous pouvez :

L'exemple suivant utilise la troisième possibilité.

Dans la Méthode base Sur fermeture, vous écrivez :

  ` Méthode base Sur fermeture
 Si(Tester chemin acces("DB_Prefs")#Est un document)
    $vhResFile:=Creer fichier ressources("DB_Prefs")
 Sinon
    $vhResFile:=Ouvrir fichier ressources("DB_Prefs")
 Fin de si
 Si(OK=1)
    VARIABLE VERS BLOB(◊vbAutoRepeat;$vxPrefData)
    VARIABLE VERS BLOB(◊vlCurTable;$vxPrefData;*)
    VARIABLE VERS BLOB(◊asDfltOption;$vxPrefData;*)
  ` et ainsi de suite...
    ECRIRE RESSOURCE("PREF";26500;$vxPrefData;$vhResFile)
    FERMER FICHIER RESSOURCES($vhResFile)
 Fin de si


Dans la Méthode base Sur ouverture, vous écrivez :

  ` Méthode base Sur ouverture
 C_BOOLEEN(◊vbAutoRepeat)
 C_ENTIER LONG(◊vlCurTable)
 $vbDone:=Faux
 $vhResFile:=Ouvrir fichier ressources("DB_Prefs")
 Si(OK=1)
    LIRE RESSOURCE("PREF";26500;$vxPrefData;$vhResFile)
    Si(OK=1)
       $vlOffset:=0
       BLOB VERS VARIABLE($vxPrefData;◊vbAutoRepeat;$vlOffset)
       BLOB VERS VARIABLE($vxPrefData;◊vlCurTable;$vlOffset)
       BLOB VERS VARIABLE($vxPrefData;◊asDfltOption;$vlOffset)
  ` et ainsi de suite...
       $vbDone:=Vrai
    Fin de si
    FERMER FICHIER RESSOURCES($vhResFile)
 Fin de si
 Si(Non($vbDone))
    ◊vbAutoRepeat:=Faux
    ◊vlCurTable:=0
    TABLEAU ALPHA(127;◊asDfltOption;0)
 Fin de si

Si la ressource est écrite, la variable système OK prend la valeur 1. Sinon, elle prend la valeur 0 (zéro).

 
PROPRIÉTÉS 

Produit : 4D
Thème : Ressources
Numéro : 509
Nom intl. : SET RESOURCE

Cette commande modifie la variable système OK

 
HISTORIQUE 

Créé : 4D v6

 
VOIR AUSSI  

Commandes du thème BLOB
LIRE RESSOURCE