Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textdatei in ein Array einlesen ?

Forumthread: Textdatei in ein Array einlesen ?

Textdatei in ein Array einlesen ?
25.10.2002 11:16:52
Gerd
Guten Morgen,
wenn ich jetzt eine Textdatei (ca. 500kb) in eine Tabelle einlese, benutze ich die Funktion "Externe Daten importieren" bzw. ein Makro, was ich aufgezeichnet habe.
Das geht schneller, als wenn man die Datei öffnet und dann pro Zeile einliest.

Nun würde ich aber gerne diese Textdatei in ein Array einlesen.
Könnte mir jemand einen ganz kurzen Beispielcode geben?

Die Textdatei sieht so aus (Ausschnitt):

13;654;222;98;Demo

Und davon sind es halt relativ viele Zeilen.

Danke an alle Array-Profis für Hilfe!

Gruß Gerd

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Textdatei in ein Array einlesen ?
25.10.2002 15:16:03
Michael Scheffler
Hallo:

Option Explicit
Option Base 1
Sub lies()
Dim varTest() As Variant
Dim iZeile As Integer
varTest = Range("A1", Range("A1").Offset(Cells(Cells.Rows.Count, 1).End(xlUp).Row, Rows(1).End(xlToRight).Column - 1))
For iZeile = LBound(varTest) To UBound(varTest)
Debug.Print varTest(iZeile, 1), varTest(iZeile, 2), varTest(iZeile, 3)
Next
End Sub

Anzeige
Re: Textdatei in ein Array einlesen ?
25.10.2002 15:48:49
Dan
Hallo Gerd,
folgendes kod liest einen Text-file und fullt einen 2D Array. Du musst nur den Anzahl der Columns des Text-files wissen und in einen InputBox eingeben. Die Werte in der Textdatei mussen mit ";" voneinader getrennt sein. Dan

Option Explicit
Option Base 1

'Line Input #
Public Sub Txt_Array_1()
On Error GoTo errH
Dim strPath As String, data(), MaxCols As Integer, cols As Long, rows As Long
Dim myChar As String, myString As String

strPath = "C:\TEMP\Demo.txt"

Open strPath For Input As #1

MaxCols = InputBox("Enter number of columns in your text file")
cols = 1
rows = 1
ReDim data(MaxCols, rows)

Do While Not EOF(1)
myChar = Input(1, #1)
If myChar <> ";" And myChar <> vbCr And myChar <> vbLf Then
myString = myString & myChar
ElseIf myChar = ";" Then
data(cols, rows) = myString
myString = ""
cols = cols + 1
ElseIf myChar = vbCr Then
data(cols, rows) = myString
myString = ""
rows = rows + 1
cols = 1
ReDim Preserve data(MaxCols, rows)
End If
Loop

Close #1

Exit Sub
errH:
MsgBox "Error : " & Err.Number
End
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Textdatei in ein Array einlesen


Schritt-für-Schritt-Anleitung

Um eine Textdatei in ein Array einzulesen, kannst Du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie Du das machen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.
  3. Füge den folgenden Code in das Modul ein:
Option Explicit
Option Base 1

Public Sub Txt_Array_1()
    On Error GoTo errH
    Dim strPath As String, data(), MaxCols As Integer, cols As Long, rows As Long
    Dim myChar As String, myString As String

    strPath = "C:\TEMP\Demo.txt" ' Pfad zur Textdatei anpassen

    Open strPath For Input As #1

    MaxCols = InputBox("Enter number of columns in your text file")
    cols = 1
    rows = 1
    ReDim data(MaxCols, rows)

    Do While Not EOF(1)
        myChar = Input(1, #1)
        If myChar <> ";" And myChar <> vbCr And myChar <> vbLf Then
            myString = myString & myChar
        ElseIf myChar = ";" Then
            data(cols, rows) = myString
            myString = ""
            cols = cols + 1
        ElseIf myChar = vbCr Then
            data(cols, rows) = myString
            myString = ""
            rows = rows + 1
            cols = 1
            ReDim Preserve data(MaxCols, rows)
        End If
    Loop

    Close #1

    Exit Sub
errH:
    MsgBox "Error : " & Err.Number
    End
End Sub
  1. Passe den Pfad der Textdatei an.
  2. Führe das Makro aus, um die Textdatei in das Array einzulesen.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Stelle sicher, dass der Pfad zur Textdatei korrekt ist.
  • Fehler: "Index außerhalb des Bereichs"

    • Überprüfe, ob die Anzahl der Spalten im InputBox korrekt eingegeben wurde.
  • Fehler: "Typen nicht übereinstimmend"

    • Sicherstellen, dass die Textdatei im richtigen Format vorliegt und die Trennzeichen korrekt sind.

Alternative Methoden

Es gibt mehrere Methoden, um eine Textdatei in ein Array einzulesen. Eine alternative Möglichkeit ist die Verwendung von VBA zur direkten Einlesung in eine Excel-Tabelle und anschließendem Kopieren in ein Array:

Dim varTest() As Variant
varTest = Range("A1", Range("A1").Offset(Cells(Cells.Rows.Count, 1).End(xlUp).Row, Rows(1).End(xlToRight).Column - 1)).Value

Dieser Code liest die Daten zuerst in die Excel-Tabelle und kann dann in ein Array übertragen werden.


Praktische Beispiele

Hier ist ein einfaches Beispiel für das Einlesen einer CSV-Datei in ein Array:

Sub Csv_In_Array()
    Dim data As Variant
    data = Application.WorksheetFunction.Transpose(Application.WorksheetFunction.TextToColumns(Range("A1"), Delimiter:=";", Destination:=Range("A1")))
End Sub

Dieses Beispiel zeigt, wie Du eine CSV-Datei in ein Array einlesen kannst, indem Du die TextToColumns-Funktion verwendest, um die Daten zu trennen.


Tipps für Profis

  • Verwende Option Explicit immer am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Nutze Debug.Print, um den Inhalt Deines Arrays während der Entwicklung zu prüfen.
  • Wenn Du mit großen Datenmengen arbeitest, erwäge die Verwendung von ArrayList oder ähnlichen Datenstrukturen für eine effizientere Verarbeitung.

FAQ: Häufige Fragen

1. Wie kann ich eine große Textdatei effizient einlesen? Du kannst die Datei in kleineren Blöcken einlesen oder die Daten direkt in ein Array laden, wie in den obigen Beispielen gezeigt.

2. Was mache ich, wenn meine Textdatei andere Trennzeichen verwendet? Passe den Code an, um das verwendete Trennzeichen zu berücksichtigen, z.B. vbTab für Tabulatoren oder ein Komma für CSV-Dateien.

3. Ist es möglich, mehrere Textdateien gleichzeitig zu verarbeiten? Ja, Du kannst eine Schleife verwenden, um über eine Liste von Dateipfaden zu iterieren und jede Datei einzulesen.

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