Zeilenweise speichern (String)

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von T1g0r.

    Zeilenweise speichern (String)

    Ich möchte ein Programm schreiben, mit dem man Zeilenweise abspeichern kann. Damit meine ich, er soll jede einzelne Zeile durchsuchen, ob sie etwas bestimmtes enthält. Falls ja soll sie verändert werden und dann abgespeichert werden. Falls nein soll sie ungeändert abgespeichert werden. Ich wette, das ist ein super simpler befehl und ich hab ich schon einmal zu früheren Zeiten benutzt, aber mir fällt es einfach nicht mehr ein! Wäre nett, wenn mir jemand helfen kann. :)
    Also mit einer For Each-Schleife hab ich das gemacht. Es klappt auch alles soweit, bloß aus irgendwelchen Grüunden setzt er vor jede Zeile "," (mit ")! Ich weis nicht was los ist, deshalb geb ich hier mal meinen Code:

    VB.NET-Quellcode

    1. If CheckBox4.Checked = True Then
    2. Dim sIn() As String
    3. Dim s As String
    4. Dim sZiel As String
    5. Dim s1comb_pfad As String
    6. Dim zeilenanzahl As Long
    7. s1comb_pfad = TextBox1.Text.Substring(0, TextBox1.Text.LastIndexOf("\")) & "\NEU.asm"
    8. sIn = File.ReadAllLines(TextBox1.Text)
    9. zeilenanzahl = sIn.Count
    10. ProgressBar1.Maximum = sIn.Count()
    11. ProgressBar1.Value = 0
    12. sZiel = ""
    13. fp = FreeFile()
    14. FileOpen(fp, s1comb_pfad, OpenMode.Output)
    15. For Each s In sIn
    16. Write(fp, s & vbCrLf)
    17. ProgressBar1.Value = ProgressBar1.Value + 1
    18. Next
    19. FileClose(fp)
    20. MsgBox("write to " & s1comb_pfad & vbCrLf & "Zeilen: " & zeilenanzahl)
    21. End If


    Keine Ahnung wie viel in diesem Code sinnlos ist, aber egal...
    Was willst du eigentlich genau machen? Der Code lässt vermuten:
    Du willst in eine TextBox einen Pfad zu einer Datei eingeben. Dann klickst du auf einen Button, und wenn CheckBox4 angehakt ist soll er die Datei auslesen und damit irgendwas machen (was ersetzen?). Zuletzt soll das Ersetzte in dieselbe Datei zurückgeschrieben werden. Habe ich das richtig verstanden?

    hal2000
    Gruß
    hal2000
    Genau so habe ich das gemeint. Das Problem ist nur, die Datei, die ich einlesen will, ist über 1 MB groß und das schaffen nicht alle Computer. Deswegen wollte ich es Zeilenweise machen, damit es nicht so lange dauert.
    So mein ich das:
    Eine Zeile einlesen, modifizieren, in neue Datei speichern <- Das ganze Zeile, für Zeile.
    So kannst du die Textdatei Zeileweise einlsen:

    VB.NET-Quellcode

    1. 'Methode 1:
    2. Dim SR As New IO.Streamreader("C:\Datei.txt")
    3. Dim ErsteZeile As String = SR.ReadLine
    4. Dim Zweitezeile As String = SR.ReadLine
    5. SR.Close
    6. 'Gut geeignet um die Datei Zeilenweise einzulesen.
    7. 'Methode 2:
    8. Dim Lines() As String = IO.File.ReadAllLines("C:\Datei.txt")
    9. For i As Long = 0 To UBound(Lines)
    10. ListBox1.Items.Add(Lines(i))
    11. Next
    12. 'Beste Methode für Zeilenweises Einlesen der Datei. Hier kann auch nur eine bestimmte Zeile eingelesen werden.

    Vielleicht hilft dir das.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia