ECRIRE RESSOURCE

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 6.0


ECRIRE RESSOURCE (resType; resNum; resDonnées{; resFichier})

ParamètreTypeDescription
resTypeAlphaType de ressource (4 caractères)
resNumNumériqueNuméro de ressource
resDonnéesBLOBNouveau contenu de la ressource
resFichierDocRefNuméro de référence de fichier de ressources ou
Fichier de ressources courant si omis

Description

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.

Indépendance de plate-forme : 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 :

utiliser les commandes ECRIRE VARIABLES et LIRE VARIABLES pour stocker et récupérer les variables dans des documents de variables sur disque.

utiliser les commandes VARIABLE VERS BLOB, BLOB VERS DOCUMENT, DOCUMENT VERS BLOB et BLOB VERS VARIABLE pour stocker et récupérer les variables dans des documents BLOB sur disque.

utiliser les commandes VARIABLE VERS BLOB, ECRIRE RESSOURCE, LIRE RESSOURCE et BLOB VERS VARIABLE pour stocker et récupérer les variables dans des fichiers de ressources sur disque.

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

Référence

Commandes du thème BLOB, LIRE RESSOURCE.

Variables et ensembles système

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


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant