[VisualBasic] Bestimmte Lines eines Textinhalts löschen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von B0B, 9. September 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 9. September 2006
    Bestimmte Lines eines Textinhalts löschen

    Also ich hab hier son Tool geschrieben, das liest eine Textdatei in ein Textfeld ein (multiline)
    den eingelesenen text will ich bearbeiten - bzw nur bestimmte lines löschen!
    also sozusagen text1.text line1 bis line 3 löschen

    weis einer wie das geht, hab bei google geschaut und nicht wirklich etwas gefunden!
     

  2. Anzeige
  3. #2 11. September 2006
    AW: Bestimmte Lines eines Textinhalts löschen

    naja ich beherrsche zwar kein vb aber ich denke es läuft folgendermaßen ab:
    öffnen der datei
    datei einlesen und die zielen in ein array speichern,
    dann array mit while schleife durchlaufen lassen (mit counter) und dann mit
    if abfragen welche zeile es ist (z.B. if(counter == gesuchtezeile))
    und überschreiben.
    danach inhalt wieder in die datei kopieren ;)
     
  4. #3 11. September 2006
    AW: Bestimmte Lines eines Textinhalts löschen

    Code:
    ' Einzelne Zeile in eine Textdatei speichern
    ' sFilename: vollständiger Name der Datei
    ' LinePos : Zeilenummer in der Textdatei
    ' sLine : Inhalt, der gespeichert werden soll
    ' ===============================================
    Public Sub txt_WriteLine(ByVal sFilename As String, _
     ByVal LinePos As Long, ByVal sLine As String)
     
     Dim F As Integer
     Dim N As Integer
     Dim I As Long
     Dim lRow As Long
     Dim Zeile As String
     Dim myTempFile As String
     
     If Dir$(sFilename, vbNormal) = "" Then
     ' Wenn Datei nicht existiert, automatisch erstellen
     ' und Inhalt sofort speichern
     F = FreeFile
     Open sFilename For Output As #F
     
     ' Datei mit Leerzeilen füllen, bis gewünschte
     ' Schreibposition erreicht ist
     For I = 1 To LinePos - 1
     Print #F, ""
     Next I
     
     ' Inhalt speichern
     Print #F, sLine
     Close #F
     
     Else
     ' Temporäre Datei erstellen
     myTempFile = txt_TempFilename()
     
     ' Original-Datei zum Lesen und temporäre
     ' Datei zum Schreiben öffnen
     F = FreeFile: Open sFilename For Input As #F
     N = FreeFile: Open myTempFile For Output As #N
     
     ' Original-Datei einlesen und x. Zeile durch
     ' neuen Inhalt ersetzen
     lRow = 0
     While Not EOF(F)
     lRow = lRow + 1
     Line Input #F, Zeile
     
     If lRow = LinePos Then
     ' x. Zeile durch neuen Inhalt ersetzen
     Zeile = sLine
     End If
     
     Print #N, Zeile
     Wend
     
     ' sollte LinePos größer sein, als die bisherige
     ' Anzahl gespeicherter Zeilen in der Orginaldatei
     ' wurde der neue Inhalt noch nicht gespeichert
     ' und die Datei muss ggf. noch mit zusätzlichen
     ' Leerzeilen gefüllt werden!
     If lRow < LinePos Then
     ' Ggf. mit Leerzeilen füllen
     For I = lRow + 1 To LinePos - 1
     Print #N, ""
     Next I
     
     ' Neuen Zeilen-Inhalt speichern
     Print #N, sLine
     End If
     
     ' Dateien schliessen
     Close #F: Close #N
     
     ' Alte Datei löschen
     Kill sFilename
     
     ' temporäre Datei in "alte" Datei umbenennen
     FileCopy myTempFile, sFilename
     Kill myTempFile
     End If
    End Sub
    Und dann einfach die Zeile mit keinem Inhalt füllen!

    Knusperkeks


    PS: Danke an HWH der mich darauf aufmerksam gemacht hat!
     
  5. #4 11. September 2006
    AW: Bestimmte Lines eines Textinhalts löschen

    mensch ne wenn dann richtig:
    Code:
    Public Sub txt_DeleteLine(ByVal sFilename As String, ByVal lLineToDelete As Long)
     Dim F As Integer
     Dim N As Integer
     Dim sFileTemp As String
     Dim lCount As Long
     Dim sLine As String
     On Error Resume Next
     
     sFileTemp = sFilename & "~"
     
     F = FreeFile
     Open sFilename For Input As #F
     N = FreeFile
     Open sFileTemp For Output As #N
     
     While Not EOF(F)
     lCount = lCount + 1
     Line Input #F, sLine
     If lCount <> lLineToDelete Then
     Print #N, sLine
     End If
     Wend
     Close #F: Close #N
     
     Kill sFilename
     Name sFileTemp As sFilename
    End Sub
    edit:
    außerdem gibts noch arrays und listboxen
     
  6. #5 11. September 2006
    AW: Bestimmte Lines eines Textinhalts löschen

    Jo danke, das ist viel einfacher als ich das immer gemacht habe ;)

    Btw. wie viele leute muss man denn bewerten um den selben nochmal bewerten zu dürfen?

    Knusperkeks
     
  7. #6 11. September 2006
    AW: Bestimmte Lines eines Textinhalts löschen

    Steht im FAQ...
    "Jeder Benutzer kann maximal 15 Beiträge pro Tag (24h) bewerten. Um Missbrauch vorzubeugen, muss zwischen der Bewertung ein und derselben Person eine Reihe weiterer User (15) bewertet werden."
     
  8. #7 11. September 2006
    AW: Bestimmte Lines eines Textinhalts löschen

    danke an alle die geholfen haben :)
    werde euch gut bewerten!
     
  9. #8 11. September 2006
    AW: Bestimmte Lines eines Textinhalts löschen

    ~closed~
     

  10. Videos zum Thema
Die Seite wird geladen...