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

Forumthread: Bestimmte Zeilen einer Textdatei löschen..

Bestimmte Zeilen einer Textdatei löschen..
Justin
Hallo miteinander...
Als Aufgabe erhielt ich eine Script zu schreiben , VBA, damit eine vorhandene .txt datei verändert wird.
Die Veränderung soll so ablaufen, dass leere Zeilen verschwinden und zeilen wo weniger als 12 Kommatas vorkommen auch .. :-) ich bin die ganze zeit am durchlesen...
Hab vieles Interessantes entdecken können .. jedoch habe ich irgendwie kein durchblick..
Ich würde mich über eine kleine Hilfe sehr freuen...

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bestimmte Zeilen einer Textdatei löschen..
05.09.2012 13:25:16
ransi
HAllo
Kannst du mal so anonymisierte Textdatei hochladen ?
ransi

AW: Bestimmte Zeilen einer Textdatei löschen..
05.09.2012 13:30:07
Justin
ja klar bin dabei...
Hab mittlerweile etwas zusammengebastelt, was die Zeilenumbrüche am ende löscht...das selbe brauch ich dann für die Umbrüche im Text.. und halt für die Zeilen die weniger als 12 Kommata haben ich lad sofort eine bsp. TXT hoch..

Anzeige
AW: Bestimmte Zeilen einer Textdatei löschen..
05.09.2012 13:31:52
Rudi
Hallo,
Sub testtext()
Dim arrText, arrTmp, i As Long
Open "c:\temp\testtext.txt" For Input As #1
arrText = Split(Input(LOF(1), 1), vbCrLf)
Close #1
Open "c:\temp\testtext.txt" For Output As #1
For i = 0 To UBound(arrText)
arrTmp = Split(arrText(i), ",")
If UBound(arrTmp) > 12 Then
Print #1, Join(arrTmp, ",")
End If
Next
Close #1
End Sub

Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Zeilen aus einer Textdatei mit VBA löschen


Schritt-für-Schritt-Anleitung

Um bestimmte Zeilen aus einer Textdatei mit VBA zu löschen, befolge diese Schritte:

  1. Öffne die Excel-Anwendung und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Erstelle ein neues Modul:
    • Klicke mit der rechten Maustaste auf einen Ordner im Projektfenster.
    • Wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:
Sub ZeilenLöschen()
    Dim arrText, arrTmp, i As Long
    Open "c:\temp\testtext.txt" For Input As #1
    arrText = Split(Input(LOF(1), 1), vbCrLf)
    Close #1
    Open "c:\temp\testtext.txt" For Output As #1
    For i = 0 To UBound(arrText)
        arrTmp = Split(arrText(i), ",")
        If UBound(arrTmp) >= 11 Then ' mindestens 12 Kommata
            Print #1, Join(arrTmp, ",")
        End If
    Next
    Close #1
End Sub
  1. Passe den Dateipfad an: Stelle sicher, dass der Pfad zur Textdatei korrekt ist.
  2. Führe das Skript aus: Drücke F5 oder wähle Ausführen > Sub/UserForm ausführen, um das Skript zu starten.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Stelle sicher, dass der Pfad zur Textdatei korrekt eingegeben wurde.
  • Fehler: "Index außerhalb der Grenzen"

    • Dieser Fehler tritt auf, wenn die Textdatei leer ist oder weniger als 12 Kommata in einer Zeile vorhanden sind. Überprüfe die Struktur der Textdatei.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch Textverarbeitungsprogramme wie Notepad++ oder ein Skript mit Python verwenden, um die Zeilen zu filtern.

Ein Beispiel für ein einfaches Python-Skript:

with open('testtext.txt', 'r') as file:
    lines = file.readlines()

with open('testtext.txt', 'w') as file:
    for line in lines:
        if line.count(',') >= 12:
            file.write(line)

Praktische Beispiele

Angenommen, du hast eine Textdatei mit folgenden Zeilen:

Zeile 1, mit, weniger, als, zwölf, Kommata
Zeile 2, mit, genau, zwölf, Kommata, wie, hier, zu, sehen, ist, es, korrekt
Zeile 3, nur, ein, Beispiel

Nach der Ausführung des VBA-Skripts wird nur die zweite Zeile erhalten bleiben, da sie die Bedingung erfüllt.


Tipps für Profis

  • Fehlerbehandlung einbauen: Füge On Error Resume Next hinzu, um Fehler während der Ausführung zu ignorieren und die Verarbeitung fortzusetzen.
  • Flexibilität erhöhen: Passe den Code an, um auch andere Kriterien für die Zeilenlöschung festzulegen, wie z.B. spezielle Keywords oder Zeichen.

FAQ: Häufige Fragen

1. Kann ich das Skript anpassen, um auch leere Zeilen zu entfernen?
Ja, du kannst eine zusätzliche Bedingung einfügen, um leere Zeilen zu filtern:

If Trim(arrText(i)) <> "" And UBound(arrTmp) >= 11 Then

2. Was mache ich, wenn ich die Datei nicht überschreiben möchte?
Ändere den Dateipfad in der Open-Anweisung, um die Ausgabe in eine neue Datei zu schreiben:

Open "c:\temp\neue_datei.txt" For Output As #1

Verwende diese Anleitung, um effektiv bestimmte Zeilen aus einer Textdatei zu löschen und passe sie an deine Bedürfnisse an!

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