SET RESOURCE

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 6.0


SET RESOURCE (ResTyp; ResNR; ResDaten{; ResDatei})

ParameterTypBeschreibung
ResTypStringRessourcentyp mit 4 Zeichen
ResNRNumerischKennummer der Ressource
ResDatenBLOBNeuer Inhalt für die Ressource
ResDateiDokRefReferenznummer der Ressourcendatei,
ohne Angabe aktuelle Ressourcendatei

Beschreibung

Der Befehl SET RESOURCE erstellt und schreibt die Ressource vom Typ ResTyp und mit der Nummer ResNR mit den Daten aus dem BLOB ResDaten.

Wichtig: Sie müssen in ResTyp einen String mit vier Zeichen übergeben.

Kann die Ressource nicht geschrieben werden, wird die OK Variable auf 0 (Null) gesetzt.

Übergeben Sie in ResDatei eine gültige Referenznummer für die Ressourcendatei, wird die Ressource nur in dieser Datei hinzugefügt. Übergeben Sie ResDatei nicht, wird die Ressource der Datei an oberster Stelle in der Ressourcendatei-Kette hinzugefügt.

Hinweis: Eine Ressource kann mehrere Megabytes groß sein.

Plattformunabhängigkeit: Bedenken Sie, dass Sie mit Ressourcen arbeiten, die auf MacOS basieren. Interne Ressourcendaten z.B vom Typ Lange Ganzzahl werden, unabhängig von der Plattform, mit der Macintosh Byte Anordnung gespeichert. Unter Windows werden low-Byte und high-Byte bei Daten für die Standardressourcen (Stringlisten-, Bild-Ressourcen, etc.) bei Bedarf automatisch vertauscht. Verwenden Sie eigene interne Datenstrukturen, bleibt es Ihnen überlassen, ob Sie die Byte-Anordnung der Daten aus dem BLOB vertauschen. Sie können Macintosh byte ordering z.B. der Funktion BLOB to longint übergeben.

Beispiel

Während einer 4D Sitzung verwalten Sie in Interprozessvariablen einige Benutzer-Voreinstellungen. Um diese Voreinstellungen von Sitzung zu Sitzung zu sichern, können Sie folgende Befehle einsetzen:

1. Mit SAVE VARIABLES und LOAD VARIABLES speichern und finden Sie die Variablen in den Variablen-Dokumenten auf der Festplatte wieder.

2. Mit VARIABLE TO BLOB, BLOB TO DOCUMENT, DOCUMENT TO BLOB und BLOB TO VARIABLE speichern und finden Sie die Variablen in BLOB Dokumenten auf der Festplatte wieder.

3. Mit VARIABLE TO BLOB, SET RESOURCE, GET RESOURCE und BLOB TO VARIABLE speichern und finden Sie die Variablen in Ressourcendateien auf der Festplatte wieder.

Nachfolgend ein Beispiel der dritten Methode.

In der Datenbankmethode On Exit schreiben Sie:

      ` Datenbankmethode On Exit 
   If (Test path name("DB_Prefs")#Is a document)
      $vhResFile:=Create resource file("DB_Prefs")
   Else
      $vhResFile:=Open resource file("DB_Prefs")
   End if
   If (OK=1)
      VARIABLE TO BLOB(<>vbAutoRepeat;$vxPrefData)
      VARIABLE TO BLOB(<>vlCurTable;$vxPrefData;*)
      VARIABLE TO BLOB(<>asDfltOption;$vxPrefData;*)
         ` usw.
      SET RESOURCE("PREF";26500;$vxPrefData;$vhResFile)
      CLOSE RESOURCE FILE($vhResFile)
   End if

In der Datenbankmethode On Startup schreiben Sie:

      ` Datenbankmethode On Startup
   C_BOOLEAN(<>vbAutoRepeat)
   C_LONGINT(<>vlCurTable)
   $vbDone:=False
   $vhResFile:=Open resource file("DB_Prefs")
   If (OK=1)
      GET RESOURCE("PREF";26500;$vxPrefData;$vhResFile)
      If (OK=1)
         $vlOffset:=0
         BLOB TO VARIABLE($vxPrefData;<>vbAutoRepeat;$vlOffset)
         BLOB TO VARIABLE($vxPrefData;<>vlCurTable;$vlOffset)
         BLOB TO VARIABLE($vxPrefData;<>asDfltOption;$vlOffset)
            ` and so on...
         $vbDone:=True
      End if
      CLOSE RESOURCE FILE($vhResFile)
   End if
   If(Not($vbDone))
      <>vbAutoRepeat:=False
      <>vlCurTable:=0
      ARRAY STRING(127;<>asDfltOption;0)
   End if

Referenz

BLOB Befehle, GET RESOURCE.

Systemvariablen und Mengen

Wird die Ressource geschrieben, wird OK auf 1 gesetzt, sonst auf 0 (Null).


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next