Bezeichnung
DefineVirtualFileFromString -- definiert eine virtuelle Datei mit einer Zeichenkette (V5.0)
Übersicht
virtfile$ = DefineVirtualFileFromString(data$, name$[, writable])
Beschreibung
Mit diesem Befehl können Sie eine virtuelle Datei aus einer Zeichenkettenquelle definieren. Eine virtuelle Datei ist eine Datei, die nur im Arbeitsspeicher vorhanden ist, aber Sie können alle Befehle von Hollywood anwenden und somit so tun, als ob die Datei wirklich auf einem physikalischen Laufwerk existiert.

DefineVirtualFileFromString() hat zwei obligatorische Argumente: Im ersten Argument data$ stellen Sie die Daten zur Verfügung, die ihre virtuelle Datei darstellen soll. Im zweiten Argument name$ übergeben Sie den Namen der virtuellen Datei. Das einzige, was hier wichtig ist, ist die Dateierweiterung. Der Name spielt keine Rolle, aber die Dateierweiterung sollte übergeben werden, da nicht alle Dateien leicht durch einen Blick auf ihre Header-Bytes identifiziert werden können.

Ab Hollywood 6.1 unterstützt DefineVirtualFileFromString() auch die Erstellung von virtuellen Dateien, in die geschrieben werden kann. Wenn die virtuelle Datei schreibbar sein soll, müssen Sie das Argument writable auf True setzen. In diesem Fall wird DefineVirtualFileFromString() eine beschreibbare virtuelle Datei für Sie erstellen. Die beschreibbare Datei wird mit dem im Argument data$ definierten Parameter initialisiert werden. Wenn Sie eine leere Zeichenkette im Argument data$ übergeben, wird eine neue, leere, beschreibbare virtuelle Datei erstellt.

DefineVirtualFileFromString() gibt eine Zeichenfolge zurück, die die virtuelle Datei beschreibt. Sie können diese Zeichenfolge allen Hollywood-Befehlen übergeben, die einen Dateinamen akzeptieren.

Bitte beachten Sie, dass der Inhalt der Datei sich nicht nur auf Text beschränkt. Sie können auch Binärdaten innerhalb des Argumentes data$ übergeben, da Zeichenketten von Hollywood auch spezielle Steuer- und das Nullzeichen enthalten können. So ist es durchaus möglich, dass Sie mit diesem Befehl virtuelle Dateien mit Binärdaten erstellen können.

Wenn Sie fertig mit der virtuellen Datei sind, sollten Sie die virtuelle Datei wieder löschen, indem Sie den Befehl UndefineVirtualStringFile() benutzen. Dies zu tun ist wichtig, weil Sie so jeden Arbeitspeicher, welchen die virtuelle Datei belegt, wieder freigeben.

Siehe auch DefineVirtualFile(), GetTempFileName() und UndefineVirtualStringFile().

Eingaben
data$
Quellenzeichenkette, welche die Daten der virtuellen Datei hat
name$
Name und Erweiterung der virtuellen Datei (siehe oben)
writable
optional: True, wenn Sie in die virtuelle Datei schreiben wollen, andernfalls False (voreingestellt ist False) (V6.1)
Rückgabewerte
virtfile$
Zeichenkette, die die virtuelle Datei beschreibt
Beispiel
vf$ = DefineVirtualFileFromString("This is a virtual file test.",
                                  "test.txt")
OpenFile(1, vf$)
While Not Eof(1) Do Print(Chr(ReadChr(1)))
CloseFile(1)
UndefineVirtualStringFile(vf$)
Der obige Code erstellt eine virtuelle Textdatei und liest dann mit der Hollywood-DOS-Bibliothek aus dieser virtuellen Datei.


data$ = DownloadFile("http://www.airsoftsoftwair.de/images/" ..
                     "products/hollywood/47_shot1.jpg")
vf$ = DefineVirtualFileFromString(data$, "image.jpg")
LoadBrush(1, vf$)
DisplayBrush(1, 0, 0)
UndefineVirtualStringFile(vf$)
data$ = Nil
Der obige Code lädt ein JPEG-Bild in eine Zeichenkette und lädt dann das Bild direkt in Hollywood, ohne sie zuerst in einer externe Datei speichern zu müssen.


vf$ = DefineVirtualFileFromString("", "test.txt", True)
OpenFile(1, vf$, #MODE_WRITE)
WriteLine(1, "A virtual file test!")
CloseFile(1)
CopyFile(vf$, GetSystemInfo().UserHome)
UndefineVirtualStringFile(vf$)
Der obige Code schreibt eine Zeichenkette in eine virtuelle Datei und kopiert dann diese virtuelle Datei in das Home-Verzeichnis des Benutzers.

Navigation zeigen