Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inhalt einer Textdatei als String einlesen

Forumthread: Inhalt einer Textdatei als String einlesen

Inhalt einer Textdatei als String einlesen
07.02.2004 20:20:40
Marco W.
Hallo,
ich möchte den kompletten Inhalt einer Textdatei als String im EXCEl vorfinden.
Bei WORD-Dateien habe ich dies bereits realisert. Dabei öffne ich diese Datei markiere den gesamten Inhalt, kopiere ihn in die Zwischenablage und von dort in die Stringvariable.
Nun suche ich eine ähnliche oder auch völlig andere Variante für das Auslesen einer Textdatei. Über Schleife bis EOF() ist nicht das optimale, da ich ja alles haben will.
Gibt es eine Variante über die Zwischenablage (ich kann gleichen Algorithmus wie für die Word-Dateien verwenden)?
Oder eine ganz andere Variante:
z. B.
Open datei For Input As #1
strAct2 = Input([Stringlänge], #1)
Gibts da eine Möglichekeit die Gesamtanzahl aller Zeichen (Variable [Stringlänge]) der betreffenden Textdatei zu ermitteln?
Marco W.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Habe eine Lösung gefunden
07.02.2004 20:59:09
Marco W.
Folgende Lösung habe ich jetzt:
dim Stringlänge as long
Open datei For Input As #1
Stringlänge=LOF(1)
string = Input(Stringlänge, #1)
AW: Habe eine Lösung gefunden
07.02.2004 21:43:23
NE
Abend Marco,
... und ich hab noch probiert ...
vorweg, keine Ahnung, hatte's bislang nur bis debug.print geschafft ;;-))

Sub test_1()
Dim zeile$
Close #1
Open "c:\dummy\tip.txt" For Input As #1
Debug.Print
While Not EOF(1)
Line Input #1, zeile
Debug.Print zeile
Wend
Close #1
End Sub

cu Nancy
Anzeige
AW: Habe eine Lösung gefunden
07.02.2004 23:10:49
Marco W.
Hallo Nancy,
Sorry, dass Du umsonst probiert hast.
Dein Code mit einer Schleife bis zum Dateiende, die Zeilenweise einliest (aber nur, wenn kein Komma drin ist) ist genau der den ich vermeiden wollte, weil es damit relativ lange dauert, bis man die komplette Datei eingelesen hat.
Und bei mir gibt es auch Komma's auf einer Zeile, da weiß ich nicht ob der Teil nach dem Komma auch eingelesen wird.
Ich lese den kompletten Datei-Inhalt mit einem Mal in meine String-Variable ein. Anschließend suche ich mit instr(string,vbcr) nach dem Zeilenendezeichen und lese bis dahin die Zeichen aus, Zeilenanfangszeichen (vbLf) und Zeilenendezeichen (vbCr) von diesem Teilstring entfernen und schon habe ich eine Zeile der Textdatei, egal wie viele Komma's dort vorkommen. Nach Überprüfung dieser Zeile wird der Teilstring aus dem Gesamt-String gelöscht und erneut das Zeilenendezeichen ausgelesen, usw. ...
Vieleicht gibts auch noch elegantere Möglichkeiten, aber diese ist für mich völlig ausreichend.
Trotzdem Danke für die Mühe.
Gute Nacht!
Marco
Anzeige
AW: Habe eine Lösung gefunden
08.02.2004 00:14:34
NE
No Prob, bitte :-)
werd' ja auch nicht dümmer dran, vielleicht noch via binär? - das übersteigt aber momentan meinen Horizont ..., anyway ...
thx for your reply :-)
cu & nächtle
Nancy
--
Marriage is a romance in which the hero dies in the first chapter.
AW: Habe eine Lösung gefunden
08.02.2004 12:26:14
NE
Hi Marcus,
ich nochmal kurz, so umsonst war's doch nicht ;;-))
ääääähh' nur 'input' liest bis zum nächsten Komma,
ein 'Line input' aber schon die ganze Zeile [incl. ','] ;-)
cu Nancy
--
While Not EOF(1)
Line Input #1, zeile
Debug.Print zeile
Wend
Anzeige
Anzeige

Infobox / Tutorial

Inhalt einer Textdatei als String im Excel einlesen


Schritt-für-Schritt-Anleitung

Um den kompletten Inhalt einer Textdatei als String in Excel einzulesen, kannst Du folgenden VBA-Code verwenden:

Sub TextdateiEinlesen()
    Dim datei As String
    Dim Stringlänge As Long
    Dim string As String

    datei = "C:\Pfad\zu\deiner\datei.txt" ' Hier den Pfad zur Textdatei anpassen
    Open datei For Input As #1
    Stringlänge = LOF(1)
    string = Input(Stringlänge, #1)
    Close #1

    ' Hier kannst Du den String weiterverarbeiten, z.B. in eine Zelle schreiben
    Range("A1").Value = string
End Sub

Dieser Code öffnet die angegebene Textdatei und liest deren gesamten Inhalt in die Variable string. Achte darauf, den Dateipfad entsprechend anzupassen.


Häufige Fehler und Lösungen

  • Fehler: Dateipfad nicht gefunden

    • Lösung: Stelle sicher, dass der angegebene Pfad zur Textdatei korrekt ist. Überprüfe auch, ob die Datei existiert.
  • Fehler: Laufzeitfehler beim Öffnen der Datei

    • Lösung: Vergewissere Dich, dass die Datei geschlossen ist und dass Du die richtigen Berechtigungen besitzt, um auf die Datei zuzugreifen.

Alternative Methoden

Eine weitere Methode, um den Inhalt einer Textdatei zu lesen, ist die Verwendung der Line Input-Anweisung. Diese Methode liest die Datei zeilenweise, kann jedoch weniger effizient sein, wenn Du den gesamten Inhalt auf einmal brauchst. Hier ein Beispiel:

Sub ZeilenweiseEinlesen()
    Dim zeile As String
    Dim datei As String

    datei = "C:\Pfad\zu\deiner\datei.txt" ' Hier den Pfad anpassen
    Open datei For Input As #1
    Do While Not EOF(1)
        Line Input #1, zeile
        Debug.Print zeile ' Gibt die Zeile in das Direktfenster aus
    Loop
    Close #1
End Sub

Praktische Beispiele

Wenn Du den gesamten Inhalt einer Textdatei in eine Excel-Zelle einfügen möchtest, kannst Du den oben genannten Code verwenden. Ein weiteres Beispiel wäre, den Inhalt nach bestimmten Zeichen zu durchsuchen:

Sub SucheNachString()
    Dim datei As String
    Dim Stringlänge As Long
    Dim string As String
    Dim suchbegriff As String

    datei = "C:\Pfad\zu\deiner\datei.txt"
    suchbegriff = "dein Suchbegriff"

    Open datei For Input As #1
    Stringlänge = LOF(1)
    string = Input(Stringlänge, #1)
    Close #1

    If InStr(string, suchbegriff) > 0 Then
        MsgBox "Suchbegriff gefunden!"
    Else
        MsgBox "Suchbegriff nicht gefunden."
    End If
End Sub

Tipps für Profis

  • Nutze die Funktion LOF, um die Dateigröße zu ermitteln, bevor Du die Datei öffnest. So kannst Du sicherstellen, dass der gesamte Inhalt eingelesen wird.
  • Überlege, ob Du mit binären Dateien arbeiten möchtest, da dies unter Umständen mehr Kontrolle über die Daten gibt.
  • Experimentiere mit der Replace-Funktion, um bestimmte Zeichen oder Abschnitte im eingelesenen String zu ändern.

FAQ: Häufige Fragen

1. Frage: Kann ich auch binäre Dateien einlesen?
Antwort: Ja, Du kannst Open datei For Binary verwenden, um binäre Dateien zu lesen. Dies erfordert jedoch etwas andere Handhabung und Verarbeitung.

2. Frage: Wie kann ich nur bestimmte Zeilen aus der Textdatei einlesen?
Antwort: Du kannst die Line Input-Methode verwenden und eine Schleife implementieren, um nur die gewünschten Zeilen zu speichern.

3. Frage: Ist dieser Code mit allen Excel-Versionen kompatibel?
Antwort: Ja, der VBA-Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen, insbesondere ab Excel 2003.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige