Haupt Navigation Neben Navigation

Textdateien

Ein sehr wichtiger Bestandteil der Programmierung ist es, Werte nachhaltig zu speichern. Nach dem Beenden eines Programms sind alle Variablen gelöscht. Um dies zu verhindenr, müssen Werte in externen Dateien gespeichert werden. Dafür gibt es von XML zu SQL so ziemlich alles, was man sich vorstellen kann, in LUA ist jedoch die gute, alte Textdatei geblieben.

Diese wird in drei Schritten verarbeitet:

  1. Datei öffnen
  2. lesen/schreiben
  3. Datei schließen

Um eine Datei zu öffnen gibt es die Funktion io.open(). Sie benötigt 2 Parameter, den Pfad zur Datei und den Modus. Der Modus ist die Einstellung, mit der die Datei geöffnet wird, zum Beispiel ob sie beschreibbar ist, oder nicht.

In der folgenden Übersicht findet man einige dieser Modi:

Modus Funktion
r lesen
w überrschreiben
a Inhalt ans Ende Anhängen
datei = io.open("textfile.txt", "r")

Nun werden wir die Datei lesen. Dazu gibt es die Funktion :read(). Als Parameter kann man einen Lesemodus angeben, dieser ist aber optional. Vor :read()folgt der Name der Variablen, die die geöffnete Datei beinhaltet.

Nun noch die verschiedenen Modi:

Modus Funktion
*n ließt ein Zeichen
*a ließt die komplette Datei
wert ließt eine bestimmte Anzahl an Zeichen

Das ganze kann nun also so aussehen:

inhalt = datei:read(10)

In inhalt wären nun zehn Zeichen aus der geöffneten Textdatei.

Aber war bringt uns das lesne, wenn wir nichts schreiben können??
Deshalb gibt es auch dafür eine Funktion, die sogar noch leichter ist, als das lesen: :write() ist ihr Name und sie benötigt lediglich einen Parameter, den Inhalt. Wo der Inhalt eingefügt wird, wurde beim öffnen bestimmt.

highscore = 10000
datei:write("highscore:"..highscore)

Nun nurnoch die Datei schließen und das wäre geschafft.

datei:close()

Wie bei :read und :write und sogar Parameterlos, so leicht kann programmieren sein.