Zeile Schreiben/Auslesen unter Visual Basic 6

  • #1
K

killer-Trekkie

Bekanntes Mitglied
Themenersteller
Dabei seit
28.10.2003
Beiträge
145
Reaktionspunkte
0
Servus!
Wie kann ich eine bestimmte Zeile auslesen bzw. eine bestimmte Zeile löschen und neu schreiben?

Vielen Dank für eure Hilfe.

mfg

killer-Trekkie
 
  • #2
Aus einer Datei, aus einer Tabelle oder wie?

Eddie
 
  • #3
Z.B. aus einer Datei mit der Endung *.txt
 
  • #4
Datei zeilenweise einlesen, ans Ende jeder Zeile ein chr(10) & chr(13) setzen.
Erreichst Du die Zeile, die Du ändern willst, den zu ändernden Text anstatt den Zeileninhalt hinzufügen oder diese Zeile ganz überspringen, wenn sie gelöscht werden soll, dann die Datei weiterauslesen.
Erreichst Du EOF, den String aus dem Hauptspeicher wieder in die Datei schreiben.
Fertig.

Eddie
 
  • #5
Gibts keinen Befehl in dem man direkt z.B. nur zeile 5 auslesen kann? Und wie kann ich eine Zeile (z.B. Zeile 5) aus der Datei löschen OHNE dass die anderen Zeile verrücken oder geändert werden?

killer-Trekkie
 
  • #6
Was soll denn Deiner Meinung nach in Zeile 5 stehen, wenn Du Zeile 5 löschst?
Ersetze die Zeile doch einfach durch chr(10)&chr(13).
Nur haste dann weiterhin eine Zeile 5, die ist zwar leer, aber vorhanden.

Eddie
 
  • #7
Das hat den Sinn, dass ich ein Programm mit änderbaren Einstellungen machen will, wobei dei Einstellungen in einer .txt Datei stehen. Um das ganze Abzukürtzen habe ich mir überlebt einfach immer in eine bestimmte Zeile ein bestimmtes Attribut zu schreiben (z.B. in Zeile 5 ob Checkbox1=true oder false ist). Wenn ich nun den Wert von Checkboc1 ändere muss ja logischer weise Zeile 5 ersetzt werden. Nun muss ich wissen wie das geht.

killer-Trekkie
 
  • #8
Warum fragst Du dann nach löschen, wenn Du den Inhalt ändern willst?
Wie es prinzipiell funktioniert steht oben.
Allerdings würde ich nicht stur eine Zeile festlegen, sondern ähnlich wie bei ini Dateien, Variablen und Wert abspeichern und dann nach der Variablen suchen.
Schreib Dir einmal Funktionen dafür und die Sache ist gegessen.
Alternativ such Dir fertige Funktionen aus den diversen VB Foren.

Eddie
 
  • #9
Hi

Hier habe ich dir mal zwei Funktionen geschrieben:

Dieser Code kommt in ein Modul:
Code:
Public Function ZeileLesen(ZeilenNr As Long, DateiPfad As String) As String
    Dim DateiNr As Integer
    Dim Zeile As String
    Dim ZeilenNr2 As Long

    DateiNr = FreeFile
    Open DateiPfad For Input As #DateiNr
        Do Until EOF(DateiNr)
            Line Input #DateiNr, Zeile
            ZeilenNr2 = ZeilenNr2 + 1

            If ZeilenNr2 = ZeilenNr Then
                ZeileLesen = Zeile
                Exit Function
            End If
        Loop
    Close #DateiNr
End Function

Public Sub ZeileEditieren(ZeilenNr As Long, NeuerZeilenText As String, _
    DateiPfad As String)
    
    Dim Zeilen() As String
    ReDim Zeilen(0) As String
    Dim Zeile As String
    Dim DateiNr As Integer
    Dim i As Long
    
    DateiNr = FreeFile
    Open DateiPfad For Input As #DateiNr
        While Not EOF(DateiNr)
            Line Input #DateiNr, Zeile
            
            Zeilen(UBound(Zeilen)) = Zeile
            ReDim Preserve Zeilen(UBound(Zeilen) + 1) As String
        Wend
    Close #DateiNr
    
    Zeilen(ZeilenNr - 1) = NeuerZeilenText
    
    DateiNr = FreeFile
    Open DateiPfad For Output As #DateiNr
        For i = 0 To UBound(Zeilen) - 1
            Print #DateiNr, Zeilen(i)
        Next i
    Close #DateiNr
End Sub

Nun kannst du die Funktionen überall in deinem Programm so verwenden:

Eine Zeile lesen:
Code:
Text1.Text = ZeileLesen(1, C:\windows\desktop\test.txt)
Eine Zeile editieren:
Code:
Call ZeileEditieren(1, NeuerText, C:\windows\desktop\test.txt)
Eine Zeile löschen:
Code:
Call ZeileEditieren(1, , C:\windows\desktop\test.txt)

Wie Eddie schon sagte: Nimm lieber eine INI-Datei. Ein Workshop findest du hier:

Mfg Alexander
 
  • #10
Vielen Dank. Hat mich weitergebracht!

mfg

killer-Trekkie
 
  • #11
Hi

@killer-trekkie
Bei erledigten Fragen diese bitte mit dem erledigt Link unten links als erledigt markieren.
Danke.

Gruß, Michael
 
  • #12
@PCDReitz
Sorry, wusst ich nicht.

killer-Trekkie
 
Thema:

Zeile Schreiben/Auslesen unter Visual Basic 6

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben