Bestimmte Werte aus Textdatei anzeigen lassen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Bestimmte Werte aus Textdatei anzeigen lassen

    Hallo
    Ich möchte aus einer Textdatei nur bestimme Werte auslesen und z.b. in einer Messagebox anzeigen lassen. Der Aufbau der Textdatei ist:

    -------------------------- 4
    Test1
    Montag
    Uhrzeit Start
    12:00
    Uhrzeit Stop
    14:00
    Kanal
    13
    Rueckkanal
    11
    -------------------------- 5
    Test2
    Dienstag
    Uhrzeit Start
    07:55
    Uhrzeit Stop
    09:00
    Kanal
    9
    Rueckkanal
    7
    -------------------------- 6
    Test3
    Dienstag
    Uhrzeit Start
    21:50
    Uhrzeit Stop
    23:00
    Kanal
    7
    Rueckkanal
    2
    usw.
    usw.

    Nun möchte ich das z.b. Dienstags auch nur die Einträge von Dienstag angezeigt werden. Dabei nur die Werte von Uhrzeit Start und Uhrzeit Stop. Wenn der Wochentag Mittwoch ist dann eben nur die Einträge vom Mittwoch.
    Versucht habe ich schon mit "ReadAllLine" aber so richtig komme ich nicht zurecht. Hat jemand da eine Idee ?
    Vielen Dank im voraus
    Gruß

    hm_krause schrieb:

    komme ich nicht zurecht.
    Du musst natürlich über alle Zeilen steppen und während des Lesens ermitteln, ob Du diesen "Datensatz" verwendest oder nicht.
    Hat es Zweck, Dich auf ein ordentliches Datenformat hinzuweisen?
    Typisiertes DataSet, DataTable, WriteXml(), ReadXml()?
    Da hast Du für jeden Datensatz eine Zeile und kannst ordentlich damit arbeiten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    hm_krause schrieb:

    genau dieses Format
    Dann hole Dir mit ReadAllLines() die ganze Datei in den RAM.
    Setze einen Zähler auf 0 und suche die nächste Zeile, die den Start eines Datensatzes markiert, oben wäre das Zeile 11.
    Die Zeilen 0 bis 10 stellen also einen geschlossenen Datensatz dar.
    Diese kannst Du nun zusammen auswerten.
    Dann setzt Du den Zähler auf 11 und suchst den nächsten Start, 22.
    usw.
    Innerhalb dieser einzelnen Datensätze weißt Du, dass in den Zeilen 4 und 6 die Start- bzw. Endzeit steht, die kannst Du Dir dann per Index-Offset rausholen.
    Feddich. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!