CAOS-Programmierung: Befehlsgruppen: Files

Aus Wikibooks

Files

FILE GLOB (command) directory (integer) filespec (string)

Das globale Verzeichnis ist "Journal", dort können Dateien zwischengespeichert werden.file glob 0 "*" wechselt zum Basisverzeichnis und stellt 
alle Dateien die "filespec"  erfüllen als Eingabestrom zur Verfügung z.B "*" =>alle. Zum Auslesen stehen  INOK, INNI und  INNL zur Verfügung. Wenn der 
Eingabestrom nicht mehr benötigt wird, muss mit  FILE ICLO alles geschlossen werden. Mit file glob 1 wird der aktuelle Welt-Ordner ausgewählt, z. B. 
../My Worlds/test/Journal. 

FILE ICLO (command)

 Der  Eingabestrom wird getrennt. Wenn dieses eine Datei ist, dann wird die Datei geschlossen. 

FILE IOPE (command) directory (integer) filename (string)

Stellt einen Eingabestrom bereit, z.B. eine Datei. Directory kann dabei:
* 0 Basisverzeichnis, Journal  oder
* 1 Weltverzeichnis  oder
* 2 oder anderes Weltverzeichnis angegeben in z.B. sets game "engine_other_world" "testa"  sein.
Mit  INNL, INNI und  INNF werden die Daten vom Eingabestrom gelesen. INOK prüft die Gültigkeit des Stroms. Der Dateiname muss mit Dateiendung 
angegeben werden. Mit FILE ICLO bitte schließen, geschlossen wird der Eingabestrom aber auch wenn ein neuer Kanal geöffnet wird.

FILE JDEL (command) directory (integer) filename (string)

Löschen der Datei mit  filename in dem Verzeichnis , welches mit directory bezeichnet wird. Siehe oben.

FILE OCLO (command)

Trennt alles vom Ausgabestrom. Ist dieser eine Datei, so wird diese geschlossen.

FILE OFLU (command)

Flush output stream. Bei einer Datei wird z.B. schreiben des Inhalts ausgelöst.

FILE OOPE (command) directory (integer) filename (string) append (integer)

Öffnen eines Ausgabestromes .Ausgabe mit  OUTV oder  OUTS oder anderen verschiedenen Befehlen. Siehe Oben.

FVWM (string) name (string)

This returns a guaranteed-safe filename for use in world names, journal file names, etc.

INNF (float)

Liest ein Dezimalzahl ein, gefolgt von 'white space'. Vorgabe ist  0.0 bei ungültigen Daten.

INNI (integer)

Liest eine Ganzzahl vom Eingabestrom, gefolgt von 'white space'. Vorgabe ist  0 bei ungültigen Daten.

INNL (string)

Liest Text vom Eingabestrom.

INOK (integer)

Gibt 1 als Ergebnis zurück, wenn alles in Ordnung ist. Ein Fehler ist z.B. eine nicht vorhandene Datei.

OUTS (command) text (string)

Sendet eine Zeichenfolge an den Ausgabestrom. Bei der Ausführung eines Skripts ist der Ausgabestrom leer und dieser Befehl macht nichts. 
Für die caos-Befehl, wird der Text als String zurückgekehrt. Mit  FILE OOPE kann der Strom in eine Datei geleitet werden.  
stream to a journal file.

OUTV (command) value (decimal)

Ausgabe von Ganzzahl oder Dezimalzahl.

OUTX (command) text (string)

Sendet einen Text als String an den Strom. Text wird dabei in Hochkomma eingeschlossen und mit "Esc-Sequenzen" gesendet.   
z.B.:
outx "Moooose\n"
liefert:
"Moooose\n"
anstatt mit outs:
Moooose

WEBB (command) http_url (string)

Sendet ein URL in den Browser. Das Spiel fügt noch  http://  am Beginn ein.

Beispiele aus creatures wiki von Alexwatson[Bearbeiten]

Ist die Welt an C3 angedockt? Verwendet INNL.

FILE IOPE 0 "wtype"
DOIF INOK eq 0
DBG: OUTS "huh?"
FILE ICLO
STOP
ELIF INNL eq "docked"
OUTS "yes"
ELSE
OUTS "no"
ENDI
FILE ICLO

Testet ob z.B. eine bestimmte Version von der Engine installiert ist.

FILE IOPE 0 "build"
DOIF INOK eq 0 or INNI lt 190
DBG: OUTS "uh oh!"
FILE ICLO
STOP
ENDI

Alle Dateien im Verzeichnis ausgeben:

FILE GLOB 0 "*"
SETV va00 INNI
SETS va99 INNL * discard rest of line
LOOP
ADDV va01 1
OUTS INNL
OUTS "\n"
UNTL va01 eq va00
FILE ICLO
Ergebnis:
   /home/alex/.dockingstation/My Worlds/hh/Journal/build
   /home/alex/.dockingstation/My Worlds/hh/Journal/wtype