Datei lesen, Zeile finden, Zeile bearbeiten, Zeit ausrechnen

esdesign

Grafikdesigner
Hallo liebe tutorials´ler

eine letzte Frage, nach dem ich gestern über die Google-Suche mich noch mit x-verschiedenen Themen beschäftigt habe.

Ich speichere Daten in einer Datei:

Code:
Eike Schlüter|12:56|
Max Mustermann|12:56|19:34|678
usw....

Die Zeile baut sich aus Name, Uhrzeit wann gekommen, Uhrzeit wann gegangen, Insgesamt in Minuten

Nun möchte ich aber natürlich nicht per Hand das alles eintragen, sondern mit einem Button.

Dazu muss ich also die Zeile finden (Der Name ist die Beschriftung des Buttons) und entsprechend bearbeiten.

Ich hatte bei Google folgendes Script gefunden:

Code:
        Dim FileName As String = "FILE"
        Dim SearchFor As String = Button1.Text
        Dim Sep = "|" 'Trennung vom Wert
        Dim EOL As String = "" 'Zeilenende-Kennung

        Dim sr As StreamReader = File.OpenText(FileName) 'Textdatei zum Lesen öffnen ...
        Dim Content As Array = Split(sr.ReadToEnd, vbCrLf) '... und zeilenweise in Array einlesen
        Dim Value As String
        For Each Line In Content 'alle Zeilen durchgehen
            If InStr(Line, SearchFor & Sep) = 1 And Microsoft.VisualBasic.Right(Line, 1) = EOL Then 'beginnt Zeile mit Suchbegriff + Trennung und endet mit Zeilenende-Kennung?
                Value = Split(Split(Line, Sep)(1), EOL)(0) 'isolieren des interessierenden Teiles
                MsgBox(Value)
            End If
        Next

Leider gibt mir Visual Basic 2010 dann die Fehlermeldung:

Code:
Fehler	1	Der Typ "StreamReader" ist nicht definiert.	C:\Users\E\Documents\Visual Studio 2010\Projects\WindowsApplication2\WindowsApplication2\NamenAustragen.vb	17	19	WindowsApplication2

Was muss ich machen****? Kann ich das eigentlich mit dem Script machen****?

Danke schonmal,
Eike
 

DrSoong

Iss was, Doc!
Du hast eine Textdatei, die kannst du doch einfach mit ReadAllText einlesen:
Visual Basic:
        Dim sFile As String = "FILE"
        Dim sZeilen() As String
        If IO.File.Exists(sFile) Then sInhalt = IO.File.ReadAllText(sFile, System.Text.Encoding.Default) 'gesamte Textdatei einlesen
        sZeilen = Split(sInhalt, vbNewLine) 'Zeilen in Array splitten

Ab hier kannst du dann die einzelnen Zeilen wie du willst bearbeiten (z.B. am Trennzeichen in die Spalten aufteilen usw.).


Der Doc!
 

Shakie

Erfahrenes Mitglied
Um die Fehlermeldung zu erklären: Die StreamReader-Klasse befindet sich im Namespace System.IO. Siehe hier. Ersetze "StreamReader" durch "System.IO.StreamReader" und die Fehlermeldung sollte verschwinden.
Code:
Dim sr As System.IO.StreamReader = System.IO.File.OpenText(FileName) 'Textdatei zum Lesen öffnen ...