Navigation: Befehlsübersicht >

Datei lesen

Diese Seite drucken
Vorherige Seite Nächste Seite
Zurück zur Kapitelübersicht

Hiermit kann eine Zeile aus einer Textdatei oder auch eine Anzahl Zeichen aus einer beliebigen Datei gelesen und in die angegebene Variable geschrieben werden.

 

Hinweis: Hierbei können ggf. auch binäre Daten geliefert werden.

 

Die einzulesende Zeile (max. 100.000, wenn Lesen ab und Anzahl Bytes 0 sind) ist entweder diejenige mit der angegebenen Zeilennummer oder die erste, die der angegebenen Suchmaske entspricht (optional mit Wildcards "*" und "?", etwa Preis=*)

 

Ist eine Zeilennummer und ein Suchbegriff angegeben, beginnt die Suche erst an der angegeben Zeile (Weitersuchen).

Bei der Suche nach einem Text wird in der Variablen [DateiSucheZeile] die Zeilennummer eingetragen, in der der Suchbegriff gefunden wurde.

 

FG Die Codierung ermöglicht die Vorgabe, in welcher Zeichencodierung die Datei vorliegt, so dass auch etwa aus Unicode-Dateien byteweise gelesen werden kann. Als Wert kann eingesetzt werden:

0=Standard, 1=UTF-8 (Standard), 2=Unicode (UTF-16), 3=UTF-7, 4=ASCII, 5=BigEndian-Unicode, 6=Mac, 28591=8 Bit (Latin1). Es kann auch der standardisierte Codepage-Name angegeben werden (ASCII, UTF8 usw.).

 

Wird ein Wert in Lesen ab eingetragen, muss auch die Anzahl Bytes vorgegeben werden. In diesem Fall werden die anderen Angaben ignoriert und der angegebene Teil aus der Datei binär in die Variable gelesen. Ein Wert von -1 als Anzahl Bytes liest die Datei bis zum Ende ein.

Tipp: Mit dem Platzhalter [cX.Datei().Inhalt$()] kann auf einen Schlag der gesamte Inhalt einer Datei eingelesen werden, auch mit unterschiedlichen Codierungen.

Hinweis: Je nach System und laufendem Skript kann es bei sehr großen Dateien (deutlich über 100MB) zu einer Fehlermeldung ("Nicht genug Speicher") kommen, wenn der gesamte Dateiinhalt auf einmal eingelesen werden soll. In solchen Fällen sollte die Datei in kleineren Teilen eingelesen werden.

 

Wird in Anzahl Zeilen eine Zahl eingegeben, wird diese Anzahl an Zeilen eingelesen. Der Wert -1 liest alle Zeilen.

 

FG Der Schalter Nächste Zeile bewirkt, dass die jeweils nächste Zeile der Datei eingelesen wird. Diese Option wird üblicherweise in Schleifen eingesetzt und lässt die Datei so lange geöffnet, wodurch das sequenzielle Durchlesen einer Datei deutlich schneller abläuft.

Das Erreichen des Dateiendes oder das Lesen aus einer anderen Datei schließt die bisherige Datei. Ein Aufruf dieser Funktion ohne Dateiname schließt sie ebenfalls.

 

Wird bei der Operation das Dateiende erreicht, wird die Variable [cX.Datei().Ende] wieder auf 1 gesetzt, die während des Lesens 0 ist.

 

Hinweis: Ist zusätzlich zu dieser Option noch ein Suchbegriff angegeben, wird dieser nur in den noch nicht mit der Option gelesenen Zeilen gesucht.

Hinweis: Als Zeilentrennung müssen in der Datei CR- oder CR/LF-Zeichen (ASCII-Zeichen 13/10) für den Zeilenumbruch verwendet sein (PC/Mac-Format).

 

 

Beispiel:

 

Eingabe  "Welche Zeile wollen Sie sich anzeigen lassen, Zeile 1 oder Zeile 2 ?¶" in [Eingabe]

Datei lesen  '[Pfad]Userdaten.txt' in [Text] (Zeile [Eingabe])

Meldung  "In der [Eingabe]. Zeile der Datei steht:¶¶[Text]" (Titel: 'Datei lesen', 'OK')

 

Eingabe  "Geben Sie ein Wort ein das Sie in der Datei suchen wollen:" in [Eingabe]

Datei lesen  '[Pfad]Userdaten.txt' in [Text] (Suchtext '[Eingabe]')

Meldung  "Das gesuchte Wort steht in Zeilennummer:¶¶[DateiSucheZeile]¶¶In dieser Zeile steht der

Text:¶¶[Text]" (Titel: 'Datei durchsuchen', 'OK')

 

Für unser Beispiel benutzen wir die Textdatei "Userdaten.txt" die im Kapitel "Datei schreiben" angelegt wurde.

Nach dem Starten des Skripts werden Sie zuerst gefragt welche Zeile in der Datei sie lesen wollen, Zeile 1 oder Zeile 2. Die Zahl die Sie eingeben wird in die Variable [Eingabe] geschrieben. In dem darauffolgenden Befehl "Datei lesen" wurde diese Variable in der Eingabezeile "Zeilennummer" eingetragen. Wenn Sie also die 1 eingegeben haben, wird in der 1. Zeile der Datei gelesen, entsprechend verhält es sich wenn Sie die Zahl 2 eingegeben haben. Nehmen wir an Sie haben die 1 eingegeben, dann erhalten Sie folgendes Ergebnis:

 

 

Wenn Sie diese Meldung bestätigt haben, werden Sie gefragt nach welchem Wort Sie die Datei durchsuchen möchten. Nach der Eingabe eines Suchwortes wird im Programm mit dem 2. "Datei lesen" Befehl fortgefahren. Bei diesem 2. Befehl haben wir die Variable [Eingabe] in die Zeile "Suchtext" eingetragen.

 

Wenn Sie als Suchwort zum Beispiel "* kenne *" eingeben (wichtig sind hier die Wildcard-Sternchen, damit der Begriff auch innerhalb der Zeile gefunden wird!), erhalten Sie folgende Anzeige:

 

 

Soll der Suchbegriff nur am Anfang der Zeile stehen, können Sie "Suchbegriff*" eingeben. Worte am Zeilenende finden Sie mit "*Such". Sollen vor dem Suchbegriff 2 beliebige andere Zeichen stehen, wäre es "??Such*".

 


 

Datei schreiben

Datei ändern

INI lesen

Platzhalter: [cX.Datei.xxx]

 

 


cX-Webseite: http://www.clickexe.net