[TuT] Sequenziell eine Datei lesen und schreiben

  • Die Projekt Datei ist schon mit Visual Basic 2008 benutzbar.
    ====================================================

    In diesem Tutorial zeige ich euch, wie wir aus einer datei lesen und diese schreiben.

    ===================================
    ===================================
    •Was wir brauchen
    - Label1 (BackColor = Control, BorderStyle = Fixed3D, AutoSize = False)
    - Label2 (Text = Nr)
    - Label3 (Text = Vorname)
    - Label4 (Text = Nachname)
    - Label5 (Text = geboren am)
    - Checkbox1 (Text = Student)
    - Button1 (Text = >)
    - Button2 (Text = <)
    - Button3 (Text = Beenden)
    ===================================
    ===================================

    ===================================
    ===================================

    Als erstes brauchen wir den System.IO
    Diesen schreiben wir in unseren code über der Public Class Form1

    Zitat

    Imports System.IO

    Wir definieren die Strucktur einer Person:

    Zitat

    Private Structure Person
    Dim vorName, nachName As String
    Dim geburt As DateTime
    Dim student As Boolean
    End Structure

    Einige globale Variablen:

    Zitat

    Private pmax As Integer = 10 'Maximale Anzahl Personen
    Private pListe() As Person ' Statisches Array aus Structurvariablen
    Private pos As Integer = 0 'Positionzähler

    Beim Laden des Formulares wird das Personalarray angelegt und mit 10 Dummy-Personen gefüllt:

    Zitat

    ReDim pListe(pmax - 1)

    Datensätze Initalisieren:

    Zitat

    For i As Integer = 0 To pListe.Length - 1
    pListe(i).vorName = String.Empty
    pListe(i).nachName = String.Empty
    pListe(i).geburt = Convert.ToDateTime("1.1.1900")
    pListe(i).student = False
    Next i

    Die Personaldatei wird gelesen (bzw. neu angelegt) und angezeigt:

    Zitat

    readFile()
    anzeigen()

    Anzeigen eines Datensatzes:

    Speichern eines Datensatzes:

    Vorwärts blättern:

    Rückwärts blättern:

    Beenden:

    Zitat

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Me.Close()
    End Sub

    Als erstes fügen wir das hier ein:

    Zitat

    Private pfad As String = "Personen.dat"

    Die folgende Methode liest die Datei sequenziell und füllt deren
    Inhalt in das Array (falls die Datei nicht vorhanden ist, wird sie neu angelegt):

    Zitat

    Private Sub readFile()
    Dim rStream As New FileStream(pfad, FileMode.OpenOrCreate, FileAccess.Read)
    Dim binReader As New BinaryReader(rStream)
    If rStream.Length > 0 Then
    For i As Integer = 0 To pmax - 1

    Von den zahlreichen Methoden des BinaryReader verwenden wir nur ReadString und ReadBoolean:

    Nun auf umgekehrtem Weg den Arrayinhalt nacheinander (sequenziell) in die Datei schreiben:

    Zitat

    Private Sub writeFile()
    Dim wStream As New FileStream(pfad, FileMode.OpenOrCreate, FileAccess.Write)
    Dim binWriter As New BinaryWriter(wStream)
    For i As Integer = 0 To pmax - 1

    Von den zahlreichen Überladungen der Write-Methode brauchen wir nur die für die Datentypen String und Boolean:

    Beim Schließen des Formulares wird das FormClosing-Event ausgelöst. Wir verwenden es,
    um den Arrayinhalt automatisch zu sichern:

    Zitat

    Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    speichern() ' aktuellen Datensatz im Array sichern
    writeFile() ' Arrayinhalt in Datei abspeichern
    End Sub

    ===================================
    ===================================
    Hier ist nochmal der Gesamte SourceCode:


    ===================================
    ===================================
    Hier könnt ihr das Projekt downloaden.

    Download
    Sequenzielle Datei lesen und schreiben.rar

    Virustotal
    Klickmich Ergebnis (1/41) Das aber auch nur weil es ein archiv ist.
    ===================================
    ===================================
    Bemerkung:

    Zitat

    -Die Personen.dat Datei wird beim Starten der Anwendung geladen.
    - Ein neuer oder editerter eintrag wird erst nach dem umblättern in die Array übernommen.


    ===================================
    ===================================
    Credits: Sedrika

    PS: Bei fragen könnt ihr sie direkt hier stellen.
    PSS: Ich habe diesen Code auch in meinem GM Tool v4 drinne nur etwas verändert.

Jetzt mitmachen!

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