Programmiersprache Pascal

Interne Dateien

Unter der Arbeit mit "internen Dateien" wird das Lesen bzw. Schreiben auf Zeichenketten verstanden.
Wie beim Lesen und Schreiben mit einer Textdatei müssen dabei Daten vom rechnerinternen Format in das Textformat (bzw. umgekehrt) umgewandelt werden. Der Unterschied zur Textdatei besteht "nur" darin, daß Quelle bzw. Ziel der Lese- bzw. Schreiboperation nicht eine externe Datei ist, sondern der Hauptspeicher ("interne Datei").

In modernen Sprachsystemen ist es üblich, die Gemeinsamkeiten zu betonen. Es werden entweder Unterprogramme bereitgestellt, die sowohl für externe als auch für interne Dateien arbeiten oder aber separate Unterprogramme für beide Fälle mit einer verwandten Nutzerschnittstelle.

Turbo Pascal

Interne Dateien sind in Turbo Pascal nicht in echtem Sinn realisiert.
Zur Konvertierung Zahl - Zeichenkette sind statt dessen folgende vordefinierte Unterprogramme zu nutzen:

Konvertierung Zahl nach Zeichenkette

  Str(zk, var);
zk ist eine Zeichenkettenvariable, var eine Variable bzw. ein Ausdruck mit numerischem Wert.

var kann eine Formatierungsangabe nachgestellt werden:

  var:w
  var:w:d
w ist eine ganze Zahl und gibt an, wieviele Zeichen ausgegeben werden sollen. Die Angabe wird ignoriert, wenn zur Ausgabe des Wert mehr Zeichen als angegeben benötigt werden.
d ist eine ganze Zahl und gibt für reelle Zahlen an, wieviele Nachkommastellen angegeben werden sollen.

Konvertierung Zeichenkette nach Zahl

  Val(zk, var, err);
zk ist eine Zeichenkettenvariable, var eine Variable mit numerischem Datentyp (Integer, Real).
err muß eine ganzzahlige Variable sein, die ausgewertet werden kann um festzustellen, ob die Zeichenkette ein numerisches Literal enthalten hat, d.h. ob nach Ausführung der Prozedur var einen ordnungsgemäßen Wert enthält.

Extended Pascal

Die Arbeit mit internen Dateien ist möglich:
Anstelle von Read und Write werden die Prozeduren ReadStr und WriteStr verwendet.

Schreiben auf eine Zeichenkette

  WriteStr(zk, var_1, ..., var_n);
zk ist eine Zeichenkettenvariable, var_1, ..., var_n sind Variablen bzw. Ausdrücke, deren Werte in der angegebenen Reihenfolge auf die Zeichenkettenvariable geschrieben werden.
var kann eine Formatierungsangabe nachgestellt werden:
  var:w
  var:w:d
w ist eine ganze Zahl und gibt an, wieviele Zeichen ausgegeben werden sollen.
??? Die Angabe wird ignoriert, wenn zur Ausgabe des Wert mehr Zeichen als angegeben benötigt werden.
d ist eine ganze Zahl und gibt für reelle Zahlen an, wieviele Nachkommastellen angegeben werden sollen.

Lesen von einer Zeichenkette

  ReadStr(zk, var_1, ..., var_n);
zk ist eine Zeichenkettenvariable, var_1, ..., var_n sind Variablen, deren Werte entsprechend des Inhaltes der Zeichenkette aktualisiert werden.

var kann keine Formatierungsangabe nachgestellt werden.

Beispiel (Extended Pascal):

  PROGRAM str_rw(OUTPUT);
  VAR i : INTEGER VALUE 11;
      r : REAL VALUE 11.11;
      s : STRING(80);
      s1, s2 : STRING(4);
  BEGIN
    WriteStr(s, 'i = ', i:2, ' r = ', r:5:2);
    Writeln(s);

    ReadStr(s, s1, i, s2, r);
    Writeln('i = ', i:2, ' r = ', r:5:2);
    Writeln('i = ', i, ' r = ', r);
  END.
XL Pascal

XL Pascal stellt wie Extended Pascal die Prozeduren WriteStr und ReadStr zur Verfügung.
Abweichend vom Extended Pascal Standard darf auch bei ReadStr eine Formatierungsvorschrift angegeben werden.



P. Böhme, 02.09.1995