Dateien Öffnen und schreiben Mit .Net framework

  • Hallo
    da es hier noch einige leute gibt die gerade erst mit Visual basic angefangen haben mache ich mal ein anfänger guide zum öffnen lesen und schreiben von dateien mit der System.IO von Windows

    1. wir erstellen ein neues projekt z.b. eine console
    2. über Moudle Module1 schreibt Ihr

    Code
    Imports System.IO


    3.1 Mit Filestream
    ihr benötigt dazu zuerst mal einen stream von der datei dafür benutzt ihr den code

    Code
    Dim FStream As New FileStream("C:\Datei.txt", FileMode.OpenOrCreate)


    erklärung: mit dem Filestream wird eine datei geöffnet und der stream geladen den man nun auslesen kann
    Das FileMode.OpenOrCreate heist das er sie öffnet oder erstellt
    3.1.1 Lesen über StreamReader
    Der StreamReader ist eine bequeme möglichkeit die bytes des Streams zu lesen und zu String zu converten mit nur einem befehl desweiteren bietet er uns lese optionen wie z.b. nur zeile oder nur block
    Dazu deklarieren wir zu erst

    Code
    Dim Reader As New StreamReader(FStream, System.Text.Encoding.ASCII)


    mann kann es auch ohne Filestream machen dann müsste anstadt (FStream,...) einfach ("C:\Datei.txt", ...) hin aber der filestream bietet noch weitere funktionen die euch bis auf eine noch nicht interresieren sollten.
    die einzige hilfreiche funktion für euch ist momentan nur die abfrage

    Code
    If FStream.CanRead And FStream.CanWrite Then

    damit überprüft ihr pb lesen und schreiben funktioniert um unnötogen fehlern aus dem weg zu gehen

    also nun zum lesen ihr könnt mit dem streamreader alle lienien oder blocks einzeln lesen mit

    Code
    While Not Reader.EndOfStream
    Dim Line = Reader.ReadLine 'eine zeile auslesen und als line für diese schleife speichern
    End While


    und Für blöcke

    Code
    While Not Reader.EndOfStream
    Dim Block = Reader.ReadBlock 'einen Blok auslesen und als block für diese schleife speichern
    End While

    wenn ihr nun alles als ein text speichern wollt macht ihr einfach

    Code
    Dim Str As String
    While Not Reader.EndOfStream
    Str += Reader.ReadLine+vbNewLine
    End While

    3.1.2 Schreiben Mit StreamWriter
    Der Stream Writer Funktioniert ähnlich wie streamreader nur dass er schreibt anstadt zu lesen also text als bytes in den stream rein
    Dafür Deklariert Ihr zuerst den Writer

    Code
    Dim Writer As New StreamWriter(FStream)


    und dann geht es so wie mit console.Write also

    Code
    Writer.Write("Einen text")


    oder

    Code
    Writer.WriteLine("Eine Zeile")


    Wichtig! nach dem schreiben immer Writer.Close oder Writer.Flush und nach dem Benutzen der datei immer Reader.Close und Writer.Close und FStream.Close

    3.2 Über Die IO.File Methode
    3.2.1 Lesen
    Um Den Gesamten Text in eine Variable zu lesen Geht der code ganz einfach

    Code
    Dim Text As String = File.ReadAllText("C:\Datei.txt")


    um alle zeilen in einen array zu lesen

    Code
    Dim Lines() As String = File.ReadAllLines("C:\Datei.txt")


    Um jedes zeichen in einen array von byte zu lesen

    Code
    Dim Bytes() As Byte = File.ReadAllBytes("C:\Datei.txt")


    allerdings um sie dann abzurufen muss man dann

    Code
    System.Convert.ToString(Bytes(4))

    damit wird dass 5te zeichen ausgelesen

    Noch ein paar sachen
    Anzahl der Zeilen

    Code
    Dim Lines() As String = File.ReadAllLines("C:\Datei.txt")
    Dim Anzahl Long = Ubound(Lines)


    Nur eine Zeile Auslesen(z.b. zeile 5)

    Code
    Dim Lines() As String = File.ReadAllLines("C:\Datei.txt")
    Dim Str As String = Lines(Zeile - 1)


    Alle zeilen einzeln durchgehen und als message zeigen

    Code
    For Each s As String In File.ReadAllLines("C:\Datei.txt")
    msgBox(s)
    Next

    3.2.2 Schreiben mit IO.File
    alle werte eines array in datei schreiben(1 wert = 1 zeile)

    Code
    File.WriteAllLines("C:\Datei.txt", Array)

    Alle werte eines arrays als einzelen byte schreiben
    [code]File.WriteAllBytes("C:\Datei.txt", Bytearray)[CODE]
    nur text schreiben

    Code
    File.WriteAllText("C:\Datei.txt", Str)
    Zitat von Steve Jobs

    Stay hungry - stay foolish.



Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!