Zeilen einer Datei mit VB löschen

Dieses Thema Zeilen einer Datei mit VB löschen im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Johannes, 24. Nov. 2003.

Thema: Zeilen einer Datei mit VB löschen hallo! Wie kann man mit VB 6 eine Zeile einer Text-Datei löschen?? Vielen Dank für eure Hilfe. mfg jojo

  1. hallo!

    Wie kann man mit VB 6 eine Zeile einer Text-Datei löschen??
    Vielen Dank für eure Hilfe.

    mfg

    jojo
     
  2. Hi
    Ich habe dir hier mal eine Sub geschrieben ;D
    Code:
    Private Sub Zeileloeschen(Dateipfad As String, Zeile As Long)
        Dim Text As String
        Dim Line As String
        Dim F As Integer
        Dim i As Long
        Dim Zeilen() As String
        
        F = FreeFile
        
       ->Datei einlesen
        Open Dateipfad For Input As #F
            While Not EOF(F)
                Line Input #F, Line
                Text = Text & Line & <:>
            Wend
        Close #F
        
       ->Alle Trennzeichen am Ende entfernen
        Do Until Right(Text, 3) <> <:>
            Text = Left(Text, Len(Text) - 3)
        Loop
        
       ->Inhalt von Text in eine Array-Variable schreiben
        Zeilen = Split(Text, <:>)
        
       ->Datei ohne die angegebene Zeile neu schreiben
        Open Dateipfad For Output As #F
            For i = 0 To UBound(Zeilen)
                If i + 1 <> Zeile Then Print #F, Zeilen(i)
            Next i
        Close #F
    End Sub
    Der Aufruf ist ganz einfach :
    Code:
    Zeileloeschen C:\Windows\Desktop\Test.txt, 2
    Hier wird die 2. Zeile gelöscht.

    Mfg Alexander :D
     
  3. Hi!

    danke für deine Antwort, jedoch verstehe ich nciht ganz die Sache mit den Trennzeichen und der Array Variable..

    mfg

    Jojo
     
  4. Hi
    Code:
    'Alle Trennzeichen am Ende entfernen
    Do Until Right(Text, 3) <> <:>
          Text = Left(Text, Len(Text) - 3)
    Loop
    Die Datei wurde zeilenweise eingelesen. Dabei wurden auch leere Zeilen eingelesen.
    Wenn diese Funktion nicht eingebaut wäre, würde für jede leere Zeile noch ein <:> dahintergestellt. Das würde beispielsweise dann so aussehen : Hallo<:>Leute<:><:><:>

    Code:
    'Inhalt von Text in eine Array-Variable schreiben
    Zeilen = Split(Text, <:>)
    Hier werden die Zeilen in eine Array-Variable geschrieben.
    Den Inhalt einer Array-Variable kann wie eine Liste aufgerufen werden.
    Wäre die erste Funktion nicht eingebaut, wären die leeren Zeilen auch in die neue Datei geschreiben wurden.

    Infos zu Array-Variablen : http://www.vbarchiv.net/faq/strings_array.php

    Mfg Alexander
     
  5. Hi!

    Ich verstehe den Code mit den <:>-Dingern nicht so wirklich, sorry... :-[

    mfg

    Jojo
     
  6. Hi

    Die Zeilenumbrüche von der Text-Datei werden in der Text-Variable als <:> gekennzeichnet. Dies kann auch mit einem anderen Zeichen gekennzeichnet werden z.b.: <> ()
    Es muss nur ein Zeichen sein, das nicht in einem normalen Text enthalten ist. Also kein ! ? = : usw.
    Dieses <:> wird dann auch als Trennzeichen für die Split-Funktion benutzt.
    -------------------------------------------------------------------------
    Die Split-Funktion füllt die Array-Variable folgendermaßen :
    Text = Test1<:>Test2<:>Test3

    Array(0) = Test1
    Array(1) = Test2
    Array(2) = Test3

    Mehr Infos zu der Split-Funktion gibt es hier : http://www.vbarchiv.net/commands/Split.php
    Ein Array fängt standartmaßig immer mit 0 an.
    --------------------------------------------------------------------------
    Nun kann man den Inhalt von der Array so aufrufen:
    MsgBox Array(2) ----->> gibt Test3 als MessageBox aus.

    Bei dem ......
    Do Until Right(Text,3) <> <:>
    Text = Left(Text,Len(Text) - 3)
    Loop
    ..... werden alle <:> am Ende entfernt.
    Mehr Infos zu Do...Loop gibt es hier : http://www.vbarchiv.net/commands/DoLoop.php

    Mfg Alexander
     
  7. Hi
    Habe die Sub noch etwas verändert :D
    Nun funktioniert sie auch ohne diese <:>
    Code:
    Private Sub Zeileloeschen(Dateipfad As String, Zeile As Long)
        Dim Text As String
        Dim F As Integer
        Dim i As Long
        Dim Zeilen() As String
       
        F = FreeFile
       
       ->Datei einlesen
        Open Dateipfad For Input As #F
            Text = Input(LOF(F), #F)
        Close #F
       
       ->Inhalt von Text in eine Array-Variable schreiben
        Zeilen = Split(Text, vbCrLf)
       
       ->Datei ohne die angegebene Zeile neu schreiben
        Open Dateipfad For Output As #F
            For i = 0 To UBound(Zeilen)
                If i + 1 <> Zeile Then Print #F, Zeilen(i)
            Next i
        Close #F
    End Sub
    Mfg Alexander
     
  8. Hi!

    Kann es sein, dass bei deinem Code man genau wissen muss, wie die zeile heisst, die man löschen will, sprich, dass sie im Code vorkommen muss. naja, ich habe mir es so gedacht, dass man aus einem Drop-Down-menü namen aussuchen kann (so eine Art adressbuch). Wie man namen hinzufügt ist mir klar. Dann soll man genauso einen namen auswählen können und diesen Löschen..

    So sieht mein Code zum Aufrufen auf:
    Was genau bedeutet denn die 2???

    mfg

    jojo
     
  9. Hi

    Bei meiner Sub musst du die Zeile wissen, die gelöscht werden soll. Deine Frage war ja : Wie lösche ich eine Zeile aus einer Text-Datei. Diese Frage habe ich dir beantwortet. Es war keine Rede von Wörter löschen.

    Bei Wörtern gibt es ein Problem :
    Wir haben beispielsweise eine Liste in der alle im Text vorkommenden Wörter eingetragen sind. Wenn du nun ein Wort aussuchst und es löscht. Dann werden alle Wörter die so heißen auch gelöscht.
    Außer du weißt die Position des Worters. Dann könnte man die Positionsdaten angeben und gezielt löschen.

    Die 2 am Ende wurde hier schon beantwortet :
    Mfg Alexander :D
     
  10. Hi!

    In der Datei kommt kein Wort doppelt vor...
    mfg

    Jojo
     
Die Seite wird geladen...

Zeilen einer Datei mit VB löschen - Ähnliche Themen

Forum Datum
Eine oder mehrere Zeilen aus einer TXT lesen und ausgeben Windows XP Forum 4. Nov. 2013
Frage zu Kopfzeilen beim Ausruck einer Mail bei Windows Live Mail Windows XP Forum 21. Jan. 2011
Word 2010 - Zeilennummern verkleinern Microsoft Office Suite 16. Nov. 2010
Word: Zeilen einer Tabelle zählen Microsoft Office Suite 2. Feb. 2006
Kopieren von Zeilen aus einer Tabelle in eine andere per Macro Microsoft Office Suite 26. Apr. 2005