Zeile aus Textdatei auslesen

  • VB.NET

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

    Zeile aus Textdatei auslesen

    Hey,

    wie kann man eine bestimmte Zeile aus einer Textdatei auslesen die sich in einem bestimmten Pfad befindet.
    Bzw. eine bestimmte Wortgruppe

    Ich mache mal ein Beispiel, wenn jetzt z.B. diese Zeilen in einer .txt-Datei sind:

    Du hast 3 Punkte erhalten
    Du hast 10 Punkte erhalten
    Du hast 20 Punkte erhalten

    Wenn "Du hast 10 Punkt erhalten" in der .txt-Datei steht, soll beim Label +1 dazgezält werden

    Und wenn es dann zum Beispiel in der .txt-Datei unter der Zeile mit "Du hast 20 Punkte erhalten" so weitergeht:

    Du hast 5 Punkte erhalten
    Du hast 10 Punkte erhalten

    Dann soll automatisch sobald die Zeile mit den 10 Punkten erscheint wieder +1 zum Label dazuzählen.

    Wie könnte man das einfach machen? Ist doch nicht viel Code oder?

    MfG.
    Naja, einlesen mit ReadAllLines und dann mit String.Contains abfragen was da steht und das mit If zusammen wird super :)

    Btw: "+1 zum Label dazuzählen" hört sich ungesund an
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Ist sogar ziemlich kurz(nicht getestet, sollte aber hinhauen):

    VB.NET-Quellcode

    1. Counter += IO.File.ReadAllLines("Pfad").Where(Function(x) x = "Du hast 10 Punkte erhalten").Count()
    2. LblAusgabe.Text = Counter.ToString()

    Sicher, das das alles ist?

    Higlav schrieb:

    Ist sogar ziemlich kurz(nicht getestet, sollte aber hinhauen):

    VB.NET-Quellcode

    1. Counter += IO.File.ReadAllLines("Pfad").Where(Function(x) x = "Du hast 10 Punkte erhalten").Count()
    2. LblAusgabe.Text = Counter.ToString()

    Sicher, das das alles ist?


    Higlav schrieb:

    Sicher, das das alles ist?


    Inwiefern ob das alles ist?

    Nochmal kurz gesagt, jedesmal wenn in der Textdatei "Du hast 10 Punkte erhalten" erscheint, soll +1 beim Label dazugezählt werden.

    Kann ich das dann nur mit einem Timer machen der z.B. alle 30 Sekunden prüft ob die Zeile nochmal neu da ist? Oder geht das irgenwie
    das es sofort dazuzählt sobald die Zeile erscheint?

    Ich denke ein Problem wäre, dass immer nur die neue Zeile dazugezählt werden soll und nicht nochmal alle, oder?
    Also du kannst einen FileSystemWatcher auf die Datei ansetzen(bzw. den Ordner, glaube ich) und dann bei gefeuertem Event die Datei neu auslesen. Aber die neuen von den alten Zeilen kannst du nicht unterscheiden. WAS du machen kannst ist, bei jedem Öffnen der Datei die Gesamtanzahl auszulesen und DIE anzeigen zu lassen.

    Oh, und

    Creatiive schrieb:

    Inwiefern ob das alles ist?
    war folgendermassen gedacht: Ich hätte jetzt erwartet, dass du die Zahlen rausfiltern willst und mit denen weiterrechnen willst.
    @Creatiive Poste bitte mal eine komplette Problembeschreibung / Aufgabenstellung.
    Ich möchte vermeiden, dass Antworten wie "Das hab ich so nicht gemeint" von Dir kommen, wenn wir gezielte Vorschläge machen.
    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!