D7WS HOMEPAGE WORKSHOP NEUE XTRAS GALERIE WORKSHOP Automatic Translation LESERSERVICE BUCH NEWS

Director 8.5 – „File Access“: Dateizugriff f¸r Authoring und Multiuser-Server

 

 

 

Home
Workshop-Seite

Director 8.5 Startseite

Das Lingo-Inventar des Multiuser-Servers enth”lt ein file()-Objekt, das die Manipulation von externen Dateien, das Lesen und Schreiben von Text- und Bin”rdaten sowie einiges mehr erm–glicht. Diese Funktionen wurden auch in die Authoring-Umgebung von Director 8.5 integriert, sind jedoch im Projektor nicht verf¸gbar. Shockwave-Umgebungen k–nnen sie (aus naheliegenden Gr¸nden) ebenfalls nicht nutzen.

Die File Access-Funktionen sind umfassender und einheitlicher als die der Xtras FileIO und FileXtra; aufgrund der einfacheren Syntax liegt es nahe, sie f¸r Authoring-Aufgaben anstatt der genannten Xtras zu nutzen. Beachten Sie, dass die Strings, die die Platzhalter aFileName bzw. aFolderName f¸llen k–nnen, maximal 255 Zeichen lang sein k–nnen.




 

 

 

 

Die Befehle im Einzelnen

file(aFileOrFolderName)

Ein file()-Objekt ist zunächst unabhängig von einer real existierenden Datei (bzw. einem realen Verzeichnis); es enthält als Parameter lediglich einen String, der als (lokale) Pfadangabe interpretiert wird und entsprechend plattformspezifisch ist. Wie bei anderen Objekten wird eine Referenz übergeben, wenn Sie das file()-Objekt einer Variablen zuweisen.

myfolder = file("macintosh_hd:Apple Extras")
put myfolder
-- <file 2 24d26f8>
file(aFolderName).getAt(index), file(aFolderName)[index]

Das folgende Skript illustriert, wie Sie ein file()-Objekt eines Dateiverzeichnisses erzeugen und mit Listensyntax auf die Inhalte des Ordners zugreifen können. Als Ergebnis wird eine Propertyliste mit den Eigenschaften #name (String), #folder (boolean) und #visible (boolean) zurückgegeben.

myfolder = file("macintosh_hd:Apple Extras")
put myfolder[1] -- erste Datei im Verzeichnis
-- [#name: "Macintosh_HD:Apple Extras:Apple IR File Exchange", #folder: 1, #visible: 1]
put myfolder[1].name
-- "Macintosh_HD:Apple Extras:Apple IR File Exchange"

file(aFolderName).createFolder()
file(aFolderName).deleteFolder()

Erstellt bzw. löscht den im Fileobjekt angegebenen Ordner. Das folgende Skript erstellt das Verzeichnis TEST.

myfolder = file("PB_test:Desktop Folder:test")
myfolder.createFolder()

Beide der folgenden Zeilen löschen den angegebenen Ordner wieder:

myfolder.deletefolder()
myfolder.delete()

file(aFileOrFolderName).exists
file(aFileName).size

Die Properties erlauben es, das Vorhandensein von Dateien und Ordnern sowie die Größe einer Datei auszulesen.

file(aFileName).locked
file(aFileName).type
file(aFileName).creator

Diese Eigenschaften können Sie lesen und setzen. type und creator sind nur am Mac und nur für Dateien verfügbar und beinhalten jeweils einen 4-Byte-String.




 

 

 

 

file(aFileName).rename("newName")
file(aFileName).exchange(newFile)

file(aFileName).getTempPath({[#extension: "xxx", #create:0]})
file(aFileName).open({[#read: 1, #write: 1, #create: 1]})
file(aFileName).close()
file(aFileName).delete()
file(aFileName).flush()

file(aFileName).read()
file(aFileName).read(bytesToRead)
file(aFileName).write(aString)
file(aFileName).position
file(aFileName).copyTo(toFile)

Befehle zum Schreiben, Lesen und Manipulieren von Textdateien.

file(aFileName).writeValue(binärWert)
file(aFileName).readValue()

Diese Funktionen erlauben es, binäre Daten in einer Datei abzulegen und diese wieder einzulesen. Unterstützt werden die wichtigsten Lingo-Datentypen (void, integer, string, symbol, float, list, propertyList, point, rect, color, date, media und picture). Andere Datentypen werden als void geschrieben.
Das folgende Skript schreibt eine Liste mit unterschiedlichen Datentypen in eine Datei – eine ideale Möglichkeit, komplexe Zustände in eine Preferences-Datei abzulegen und beim nächsten Programmstart wieder einzulesen.

mystate = [#media: member("whiteboard").media, #color: rgb(255,0,0), #loc: point(120,320), #test: VOID, #tries: [1,0,1,1,VOID]]
put mystate
-- [#media: (media 24d130c), #color: rgb( 255, 0, 0 ), #loc: point(120, 320), #test: <Void>, #tries: [1, 0, 1, 1, <Void>]]
prefsfile = file("PB_SYS:Desktop Folder:NEUER ORDNER:myprefs.file")
prefsfile.writeValue(mystate)
newprefs = prefsfile.readValue()
put newprefs
-- [#media: (media 24d1370), #color: rgb( 255, 0, 0 ), #loc: point(120, 320), #test: <Void>, #tries: [1, 0, 1, 1, <Void>]]
put newprefs.tries
-- [1, 0, 1, 1, <Void>]

Existiert die Datei zuvor nicht, so wird Sie mit dem writeValue()-Befehl angelegt.

 




 


Directorworkshop.de ist © Joachim Gola & Gerd Gillmaier 1998-2002. Alle Rechte vorbehalten.