Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Die VBA-eigenen Befehle wie Open, Write, Input, Close und so weiter erlauben das Erstellen, Schreiben und Lesen von Textdateien. Wenn es etwas komfortabler sein darf, gibt es jedoch noch andere Möglichkeiten. Eine davon ist die Klasse FileSystemObject, die Sie in der Bibliothek Microsoft Scripting Runtime finden. In den Artikeln Das FileSystemObject: Verzeichnisse und Das FileSystemObject: Dateien haben wir die Grundlagen zu dieser Bibliothek und zum Umgang mit Laufwerken, Verzeichnissen und Dateien erläutert. Dieser Artikel zeigt, welche Möglichkeiten diese Bibliothek im Hinblick auf den Umgang mit Textdateien bietet.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1902_FileSystemObject_Textstream.accdb.
Die TextStream-Klasse
Beim Aufruf der Methode CreateTextFile der FileSystemObject-Klasse und der Folder-Klasse werden Objekte des Typs TextStream zurückgeliefert.
Diese weisen die folgenden Eigenschaften auf:
- AtEndOfLine: Gibt an, ob sich der Zeiger am Ende der aktuellen Zeile befindet.
- AtEndOfStream: Gibt an, ob sich der Zeiger am Ende des Streams befindet.
- Close: Schließt einen offenen Textstream.
- Column: Gibt die aktuelle Spalte des Zeigers aus.
- Line: Gibt die Nummer der aktuellen Zeile des Zeigers aus.
- Read: Liest die mit dem Parameter angegebene Menge an Zeichen.
- ReadAll: Liest den kompletten Inhalt des TextStream-Objekts.
- ReadLine: Liest die jeweils folgende Zeile des TextStream-Objekts.
- Skip: Verschiebt den Zeiger um die angegebene Anzahl Zeichen in Richtung Ende des Streams.
- SkipLine: Verschiebt den Zeiger auf den Anfang der nächsten Zeile.
- Write: Fügt den Inhalt des Parameters hinter dem letzten vorhandenen Zeichen in einem Textstream-Objekt ein.
- WriteBlankLines: Fügt hinter dem letzten Zeichen des TextStream-Objekts leere Zeilen entsprechend der im Parameter angegebenen Anzahl ein.
- WriteLine: Fügt den als Parameter angegebenen Text hinter dem letzten Zeichen des TextStream-Objekts ein und hängt ein Zeilenumbruchszeichen hinten an.
Erstellen einer Textdatei und Füllen mit Text aus einer Variablen
Wenn Sie einfach nur den Inhalt einer String-Variablen in eine neue Textdatei schreiben wollen, gehen Sie wie folgt vor:
Dim strDatei As String Dim strPfad As String Dim strText As String Dim objTextstream As TextStream strDatei = Replace(FSO.GetTempName, ".tmp", ".txt") strPfad = FSO.BuildPath(CurrentProject.Path, strDatei) strText = "Dies ist ein Beispieltext." & vbCrLf strText = strText & "Und noch eine Zeile." & vbCrLf strText = strText & "Und die letzte Zeile." Set objTextstream = FSO.CreateTextFile(strPfad) With objTextstream .Write strText End With objTextstream.Close
Hier ermitteln wir einen temporären Dateinamen, bei dem wir die Dateiendung .tmp durch .txt ersetzen. Dann fügen wir diese über die Funktion BuildPath mit dem Verzeichnis der aktuellen Datenbank zu einem Pfad zusammen. Außerdem fügen wir in der Variablen strText einen mehrzeiligen Text zusammen, den wir dann zur Datei hinzufügen wollen.
Die Textdatei erstellen wir mit der CreateTextFile-Methode des FileSystemObject-Objekts, der wir als Parameter den Pfad aus strPfad übergeben.
Dann nutzen wir die Write-Methode des mit der Variablen objTextstream erstellten TextStream-Objekts, um den Inhalt der Variablen strText einzufügen.
Schließlich schließen wir die Datei mit der Close-Methode. Das Ergebnis ist eine Textdatei mit dem Text aus strText (siehe Bild 1).
Bild 1: Eine erste Textdatei mit Inhalt
TextStream-Objekt für Folder erzeugen
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo