-
  • EUKLID-Design
  • EUKLID-Design Classic
  • Dokumentation
  • Download
  • +49-991-2806945-0
  • info@eucad-software.de
AQL Einführung Programmiersprache
Ausgabeformatierung Symbole Ausdrücke Kontrollanweisungen Funktionen Dateibearbeitung
Dateizuweisung Ausgabedatei Eingabedatei Test von
Zugriffsverfahren
Dateinamen ersetzen Test auf Existenz
einer Datei
Test auf Existenz
eines Verzeichnisses
Fehlerdatei zuweisen Dateinamen ersetzen Binärdatei öffnen AQL-Symbol lesen Positionieren in der
Eingabedatei
Ermitteln der Position
in der Eingabedatei
Schreiben in eine
Binärdatei
Lesen einer
Binärdatei
Einlesen eines
Namens
Lesen einer Zahl Lesen einer Zeile Lesen eines
Schlüsselwortes
Lesen eines
Kommentars
Lesen eines Strings Schliessen der
Eingabedatei
Schliessen einer
Binärdatei
Fehler
Kommandosprache Vordefinierte
Funktionen
Datenstruktur Beispielprogramme Syntaxdiagramme

Dateibearbeitung

Folgende Funktionen können verwendet werden:

  • Allgemeine Form der Dateizuweisung – file
  • Zuweisung der Ausgabedatei – file output
  • Zuweisung der Eingabedatei – file input
  • Test von Zugriffsverfahren – file_access
  • Test auf Existenz einer Datei – existf
  • Test auf Existenz eines Verzeichnisses – existd
  • Zuweisung der Fehlerdatei – file error_output
  • Öffnen einer Binärdatei – bin_open
  • Einlesen eines AQL-Symbols – get
  • Positionieren in der Eingabedatei – get, relget
  • Ermitteln der Position in der Eingabedatei – line
  • Schreiben auf Binärdatei – bin_write, bin_write_byte, bin_write_short
  • Lesen einer Binärdatei – bin_read_byte, bin_read_short, bin_read_int
  • Einlesen eines Namens – parse_name
  • Einlesen einer Zahl – parse_number
  • Einlesen einer Zeile – parse_line
  • Einlesen eines Schlüsselworts – parse_keyword
  • Einlesen eines Kommentars – parse_comment
  • Einlesen eines Strings – parse_string
  • Schließen der Eingabedatei – close
  • Schließen einer Binärdatei – bin_close

Siehe "Beispiel zur Dateibearbeitung" auf Seite 7-4.

3.6.1 Allgemeine Form der Dateizuweisung – file

Die allgemeine Form der file-Anweisung ist:

file <file_name_string> <file_type>

Datei <file_name_string> bezeichnet einen Ausdruck, der als Ergebnis den Namen der angesprochenen Datei als String ergibt. Dieser Name muß den Systemkonventionen für Dateinamen entsprechen. Als Sonderform ist die Bezeichnung <screen> zulässig, die das Fenster anspricht, in dem ObjectD gestartet wurde. Dies ist auch die Voreinstellung für alle Dateitypen. Jede Zuweisung ist sofort wirksam.

  • Bei Vergabe von Dateinamen ist das zugrundeliegende Betriebssystem zu beachten.
  • Environmentvariable aus dem Betriebssystem sind in AQL nicht bekannt.


Zuweisung der Ausgabedatei – file output

Mit dieser Zuweisung wird die Ausgabe von konstanten Zeichenketten, sowie die Ausgabe der Anweisungen [...],nl und sp gesteuert.

file <file_name_string> output file <file_name_string>

Die Angabe des Schlüsselwortes output ist optional. Wird eine Datei innerhalb eines Programmlaufs zum ersten Mal angesprochen, so wird sie mit write eröffnet. D.h. falls sie noch nicht vorhanden ist, wird sie angelegt; falls sie existiert, wird ihr bisheriger Inhalt durch die nachfolgenden Ausgaben überschrieben.

Bei einer nochmaligen Dateieröffnung in einem AQL-Programmlauf, wird diese mit append eröffnet, d.h. sie wird durch alle nachfolgenden Ausgaben erweitert.

Dateien werden automatisch bei Programmbeendigung oder implizit durch Eröffnen einer neuen Ausgabedatei geschlossen. Auch das Rücksetzen auf die Voreinstellung <screen>, welche dem Standardstrom stdout entspricht, schließt eine offene Ausgabedatei.

Zuweisung der Eingabedatei – file input

Damit wird der Eingabestrom, der standardmäßig vom Bildschirm (<screen>) einliest (UNIX-Strom stdin), einer existierenden Datei zugeordnet.

file <file_name_string> input

Mit der ersten Anweisung file input auf eine Datei innerhalb eines Programmlaufs, wird diese Datei in einen internen Speicher eingelesen. Alle lesenden Zugriffe mit get werden von diesem internen Speicher ausgeführt, auch wenn die Datei zwischendurch neu eröffnet wurde.

Test von Zugriffsverfahren – file_access

Die Funktion file_access testet die Zugriffsrechte. Der Return-Wert ist vom Typ boolean.

<res_boolean> = file_access (<string1>, <string2>)
<string1> Dateiname
<string2> r: read
w: write
x: executable

Beispiele

Die Reihenfolge der Buchstaben "r", "w" und "x" ist beliebig.

file_access ("file_name", "rwx") // Ist Lesen, Schreiben und Ausführen möglich?
file_access ("file_name", "r") // Ist Lesen möglich?
file_access ("file_name", "w") // Ist Schreiben möglich?
file_access ("file_name", "rw") // Ist Lesen und Schreiben möglich?

Sonderzeichen am Anfang eines Dateinamens ersetzen – file_extend

Die Funktion file_extend ersetzt Sonderzeichen (#, +, ~) am Anfang eines Dateinamens.

<res_string> = file_extend (<string>)
<string> Dateiname

Test auf Existenz einer Datei – existf

Die Funktion liefert "true", wenn die angegebene Datei existiert.

<exists_bool> = existf(<filename>)

Test auf Existenz eines Verzeichnisses – existd

Die Funktion liefert "true", wenn das angegebene Verzeichnis existiert.

<exists_bool> = existd(<dirname>)

Zuweisung der Fehlerdatei – file error_output

In diesen Strom, der standardmäßig dem Bildschirm (stderr) entspricht, werden alle Fehlermeldungen ausgegeben. Er wird in derselben Weise behandelt wie der Ausgabestrom.

file <file_name_string> error_output

Öffnen einer Binärdatei – bin_open

Die Funktion öffnet eine Binärdatei.

<fd> = bin_open (<filename>, <mode>)
<fd> file_descriptor, wird bei den Funktionen bin_write*, bin_read* und bin_close benötigt.
<filename> Dateiname
<mode> "input"/"output"/"append"

Das erste Argument identifiziert die zu öffnende Datei. Die Funktion liefert im Erfolgsfall file_descriptor.

3.6.10 Einlesen eines AQL-Symbols – get

Das angegebene Symbol wird mit dem nächsten im Eingabestrom (siehe Anweisung file .. input) gefundenen Symbol versehen. Gleichzeitig wird der interne Lesezeiger an das Ende des gelesenen Symbols gesetzt, damit mit dem nächsten Lesezugriff das nächste Symbol eingelesen wird.

<symbol> = get()

Beim Lesen werden Leerzeichen und Zeilenenden ignoriert, sofern sie sich nicht innerhalb von Zeichenketten befinden, die in Anführungszeichen eingeschlossen sind. Ganze Zahlen und Gleitkommawerte (integer und real) beginnen mit einer Zahl oder dem Minuszeichen. Zeichenketten beginnen mit allen anderen Zeichen und enden mit dem ersten Leerzeichen oder dem Zeilenende, falls sie nicht in die Anführungszeichen eingeschlossen sind.

Siehe "Beispiel für Zeichensuche in einer Datei" auf Seite 7-6.

Positionieren in der Eingabedatei – get, relget

Mit der folgenden Form der get-Funktion wird der Lesezeiger an die angegebene Position in der Eingabedatei positioniert.

<symbol> = get(<line_number>)

Die Lesefunktion relget positioniert den Lesezeiger relativ zur aktuellen Position. Positive Werte für "offset" verschieben den Zeiger in Richtung "Dateiende", negative Werte in Richtung "Dateianfang". Falls die angegebene oder berechnete Zeilennummer einen Wert ergibt, der negativ oder größer als die Zeilenzahl der Eingabedatei ist, so wird der Wert invalid zurückgegeben. Ist die aktuelle Eingabedatei der Bildschirm (<screen>), so sind die Positionierfunktionen wirkungslos.

<symbol> = relget(<offset>)

Ermitteln der Position in der Eingabedatei – line

Die Nummer der aktuellen Zeile der Eingabedatei wird ausgegeben. Ist die aktuelle Eingabedatei der Bildschirm <screen>, so wird der Wert invalid zurückgegeben.

<line_number> = line()

Siehe "Beispiel für Zeichensuche in einer Datei" auf Seite 7-6.

Schreiben in eine Binärdatei – bin_write, bin_write_byte, bin_write_short

Die Funktion bin_write schreibt jedes Argument in eine Binärdatei. Die Argumente müssen integer- oder real-Werte bzw. Strings sein.

bin_write (file_descriptor, arg1, arg2, ..., argn)

Die Funktion bin_write_byte schreibt das erste Byte jedes Arguments in eine Binärdatei. Die Argumente müssen Integerwerte sein.

bin_write_byte (file_descriptor, arg1, arg2, ..., argn)

Die Funktion bin_write_short schreibt den ersten Datentyp short jedes Arguments in eine Binärdatei. Die Argumente müssen Integerwerte sein.

bin_write_short (file_descriptor, arg1, arg2, ..., argn)

Lesen einer Binärdatei – bin_read_byte, bin_read_short, bin_read_int

Die Funktion bin_read_byte liest ein Byte aus einer Binärdatei. Die Funktion liefert im Erfolgsfall einen Typ "Integer".

<i> = bin_read_byte (file_descriptor)

Die Funktion bin_read_short liest den ersten Datentyp short aus einer Binärdatei. Die Funktion liefert im Erfolgsfall einen Typ integer.

<i2> = bin_read_short (file_descriptor)

Die Funktion bin_read_int liest einen Datentyp integer aus einer Binärdatei. Die Funktion liefert im Erfolgsfall einen Typ integer.

<i4> = bin_read_int (file_descriptor)

Einlesen eines Namens – parse_name

Die Funktion liefert den Namensstring aus dem Eingabestrom (max 31 Zeichen).

<res_string> = parse_name()

3.6.16 Einlesen einer Zahl – parse_number

Die Funktion liefert den Wert der Zahl als Typ integer oder real.

<number> = parse_number()

Einlesen einer Zeile – parse_line

Die Funktion liefert den Inhalt der verbleibenden Zeile bis zum Zeilenende als String.

<res_string> = parse_line()

Einlesen eines Schlüsselworts – parse_keyword

Die Funktion liefert den Wert "true", wenn der nächste zu lesende Eintrag dem keyword entspricht. Der Lesezeiger steht dann am nächsten Eintrag. Andernfalls bleibt der Lesezeiger an der Stelle stehen und die Funktion liefert "false" als Ergebnis (Siehe "Beispiel für Zeichensuche in einer Datei" auf Seite 7-6.).

<res_bool> = parse_keyword()

Einlesen eines Kommentars – parse_comment

Die Funktion liefert den nächsten Kommentar aus der Eingabedatei.

parse_comment ( )

Einlesen eines Strings – parse_string

Die Funktion liefert den nächsten String (zwischen doppelten Hochkommata " ") aus der Eingabedatei.

parse_string ( )

Schließen der Eingabedatei – close

AQL schließt automatisch alle eröffneten Dateien bei Programmende. Das explizite Schließen der Eingabedatei ist deshalb nur dann notwendig, falls eine Datei im selben Programmlauf verändert wird und danach gelesen werden soll. Der Funktionswert ist vom Typ logical und sagt aus, ob das Schließen erfolgreich war (true) oder nicht (false). Nach dem Schließen der Eingabedatei ist die Standardeinstellung <screen> aktiv.

close()

Schließen einer Binärdatei – bin_close

Die Funktion schließt eine Binärdatei.

bin_close (file_descriptor)
file_descriptor siehe bin_open


◀ Funktionen Fehler ▶


Kontakt Impressum Datenschutz