Zeitstempel und Logdatei

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 32 Antworten in diesem Thema. Der letzte Beitrag () ist von udgesbou.

    Haudruferzappeltnoch schrieb:

    Die Forderung bring ich nicht zusammen
    Zitat von udgesbou: „wenn ich auf die Schaltfläche "Reading" klicke“Zitat von udgesbou: „fortlaufend“ Na was denn nu, wenn du klickst oder wenn immer?

    Ich klicke einmal auf "Reading", dann wird die .txt erstellt, dann werden über einen Zeitraum von beispielsweise 30 Minuten verschiedene RFID-Tags gelesen, diese werden fortlaufend in der .txt gespeichert, bis ich irgendwann auf "Stop" klicke.

    Am Tag darauf klicke ich wieder auf "Reading" eine neue .txt wird erstellt und so weiter :)
    Sprich dass die .txt vom Inhalt her so aussieht:

    Quellcode

    1. 16.04.2021 11:12:13,384 041500100000000000000000
    2. 16.04.2021 11:12:13,397 E28011700000020A3E012563
    3. 16.04.2021 11:12:13,406 E28011700000020A3E012543
    4. 16.04.2021 11:12:13,416 ABCD47110000000000002A0E
    5. 16.04.2021 11:12:13,426 E28011700000020A3E012553
    6. 16.04.2021 11:33:37,223 041500100000000000000000
    7. 16.04.2021 11:33:37,230 E28011700000020A3E012563
    8. 16.04.2021 11:33:37,230 E28011700000020A3E012593
    9. 16.04.2021 11:33:37,230 ABCD47110000000000003180
    10. 16.04.2021 11:33:37,230 ABCD47110000000000002E5C
    11. 16.04.2021 11:33:37,230 ABCD4711000000000000317E
    12. 16.04.2021 11:33:37,245 E28011700000020A3E012583
    13. 16.04.2021 11:33:37,245 ABCD47110000000000002E5B
    14. 16.04.2021 11:33:42,824 041500100000000000000000
    15. 16.04.2021 11:33:42,824 E28011700000020A3E012583
    16. 16.04.2021 11:33:42,824 E28011700000020A3E012593



    Grüße

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „udgesbou“ ()

    Hm, gehe ich Recht in der Annahme, dass die RichTextBox sich beginnt zu füllen nachdem du auf Reading geklickt hast und damit aufhört wenn du auf Stop gedrückt hast?
    Naja ich sehs ja am Code.

    Wenn du im Designer auf den Stop Knopf klickst. Dann steht rechts im Eigenschaftenfenster eine Eigenschaft namens Name. Wie heißt der Stop-Knopf? Ich denke Button9
    Insgesamt ist es sinnvoll seinen Buttons und TextBoxen usw. vernünftige Namen zu geben, damit die Zuordnung im Code leichter gemacht werden kann.

    In der Methode Button9_Click schreibst du am Ende.

    VB.NET-Quellcode

    1. IO.File.WriteAllLines($"DeinVollständigerPfadWoDieDateiLiegenSoll\{Date.Now:dd.MM.yy}.txt", RichTextBox1.Text.Replace(vbCrLf, "#"c).Split("#"c).Distinct)

    Und ich würde dir raten das Format von str2 dahingehend anzupassen, dort die Millisekunden rauszunehmen (das fff), dann hat das Distinct auch einen Effekt.
    Wenn du die Millisekunden brauchst, kannst das Distinct weglassen.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Haudruferzappeltnoch schrieb:

    Hm, gehe ich Recht in der Annahme, dass die RichTextBox sich beginnt zu füllen nachdem du auf Reading geklickt hast und damit aufhört wenn du auf Stop gedrückt hast?
    Naja ich sehs ja am Code.

    Ja genau so ist es.

    Haudruferzappeltnoch schrieb:

    Wenn du im Designer auf den Stop Knopf klickst. Dann steht rechts im Eigenschaftenfenster eine Eigenschaft namens Name. Wie heißt der Stop-Knopf? Ich denke Button9
    Insgesamt ist es sinnvoll seinen Buttons und TextBoxen usw. vernünftige Namen zu geben, damit die Zuordnung im Code leichter gemacht werden kann.

    Ja genau, soll ich das noch machen, wenn es das Ganze vereinfachen würde? Habe die SDK auch nur so bekommen, habe sie nicht von Anfang an erstellt.

    Grüße
    Mal eine gänzlich andere Frage: Warum verwendest du nicht einfach eines der vielen Logging-Frameworks die es für .net gibt?
    Serilog fällt mir da z.B. ein. Bietet alles was du brauchst und dann musst du den Code nicht selbst zurechtbasteln.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.

    Haudruferzappeltnoch schrieb:


    In der Methode Button9_Click schreibst du am Ende.

    VB.NET-Quellcode

    1. IO.File.WriteAllLines($"DeinVollständigerPfadWoDieDateiLiegenSoll\{Date.Now:dd.MM.yy}.txt", RichTextBox1.Text.Replace(vbCrLf, "#"c).Split("#"c).Distinct)

    Und ich würde dir raten das Format von str2 dahingehend anzupassen, dort die Millisekunden rauszunehmen (das fff), dann hat das Distinct auch einen Effekt.
    Wenn du die Millisekunden brauchst, kannst das Distinct weglassen.

    Ich glaube das ist nicht das was ich meine, die Logdatei sollte parallel zum Lesen des RFID-Tags beschrieben werden, nicht erst, wenn ich auf "Stop" klicke mit dem Inhalt der "RichTextBox".

    Sprich ich klicke auf "Reading" und dann erscheinen die gelesenen Tags in der "RichTextBox" und parallel sollen sie mit Datum, Uhrzeig, Tag-ID auch in die Logdatei geschrieben werden, bis ich auf "Stop" klicke.

    Grüße
    Genau, wenn ich über den angeschlossenen Reader eine RFID-Tag scanne, dann erscheinen in der RichTextBox folgende Daten:

    Quellcode

    1. 16.04.2021 11:12:13,384 041500100000000000000000

    und genau so sollen sie parallel mit Erscheinen in der RichTextBox auch in eine Logdatei geschrieben werden, sprich "Datum Uhrzeit Tag-ID"


    Grüße

    Haudruferzappeltnoch schrieb:

    Hm naja, um es simpel zu halten, dann schreibst unter Zeile <s>47</s> 46 aus Post 15
    VB.NET-Quellcode (1 Zeile)
    Aber ist das zeitkritisch, dass du das alle 100ms brauchst?

    Absolut überragen, das ist genau das was ich brauche und wie ich es brauche.
    Ja auch die 100ms sind wichtig, da wir ein hobbymäßig mit kleinen Pitbikes auf einer kleinen Strecke fahren und da kann es schon einmal vorkommen, dass zwei oder drei Fahrer nahezu gleichzeitig durch die Zeitnahme brettern :saint:

    Vielen vielen vielen Danke für deine schnell, verständliche und unkomplizierte Hilfe :thumbsup: :thumbsup: <3 <3 <3 <3

    Da können sich viele User und viele Foren insgesamt noch eine Scheibe abschneiden, vielen vielen lieben Dank!!!!


    Grüße



    Servus nochmal,
    sorry für den Doppelpost, aber leider seid ihr mich doch in der Sache noch nicht los :whistling:

    Ist es irgendwie möglich die Leerzeichen in der Tag-ID zu entfernen?

    Aktuell wird so dargestellt und geschrieben, "E2 80 11 05 20 00 71 85 E6 2D 0A 68", ideal wäre aber so: "E280110520007185E62D0A68".


    Danke nochmal und Grüße

    Beiträge zusammengefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Da fehlen anscheinend tatsächlich noch ein paar Grundlagen. Es gibt mehrere Möglichkeiten, z.B. Dim KorrigierterString = "E2 80 11 05 20 00 71 85 E6 2D 0A 68".Replace(" ", String.Empty)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.