Daten aus String auslesen

  • VB.NET

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

    Daten aus String auslesen

    Hallo zusammen,
    ich bekomme aus einer Abfrage einen String, der z.B: so ausschaut: <Bib>17</Bib> <T1>59619.2</T1>. Je nachdem was ich zuvor eingestellt habe bzw. welche Daten ich
    haben will (Bib, oder T1). Es ist von einem Sportzeitnahmeprogramm, deshalb Bib, für Startnr. und T1 für die 1. Laufzeit in sek. Es gibt natürl. noch viieeell mehr Felder, die man ausgeben lassen kann (Nachname, Vorname, Zeiten....).
    Meine Frage ist jetzt, wie bekomme ich es hin, dass ich z.B. aus diesem String die Zeit T1 von 59619,2 sek. bekomme? Ist es irgendwie möglich, dies in ein Array o.ä. zu schreiben?
    Viele Dank für Eure Hilfe..
    Klar möglich, nur letztendlich greift ein Array zu kurz.
    Du hast da eine Datenverarbeitung am Hals, und die Daten bilden Datensätze.

    Da sollteste dich mit relationaler Datenmodellierung befassen, und in einem Dataset Wettkämpfe, Läufe, Sportler, Messungen und whatever modellieren und in die richtigen Relationen zueinander bringen.
    Arrays können das nicht leisten.

    gugge Datenverarbeitungs-Vorraussetzungen
    Hallo cherz,

    Daten aus einem String zu holen ist je nach Anwendungsfall einfach, bis kompliziert. In deinem Fall ist es aber noch relativ einfach. In diesem Fall würde ich anhand von Regex(System.Text.RegularExpressions) die Daten heraussuchen und dann anhand der Parse-Methoden der jeweiligen Datentypen konvertieren.
    Vorgehen: Mit einem Regex-Objekt .Match() aufrufen und mit dem Regexpattern (?<=<Bib>)[0-9]+?(?=</Bib>) die erste Zahl heraussuchen. Dann den .Value des Matches anhand Integer.Parse() parsen. Das gleiche mit (?<=<T1>)[0-9]+?\.[0-9]+?(?=</T1>) und TimeSpan.FromSeconds() für die Zeit wiederholen - Feddich,
    Eine Einführung in Regex findest du hier.

    @EDR: Also für zwei Zahlen sich da in Datenbänkerei einzulesen finde ich jetzt etwas übertrieben. ;)
    das hört sich schon etwas einfacher an.. weil ich in dem Fall über einen Trigger nur daten von genau einem Läufer bekommen.. und von dem z.B. die Laufzeit angezeigt bekommen haben will...
    Vielen Dank schon mal.. ich werde es testen..
    VG aus dem Allgäu nach Zürich
    clemens

    cherz schrieb:

    der z.B: so ausschaut:
    Ist das eine XML-Datei?
    Ansonsten:
    Wo kommt der String her?
    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!
    dieser String wird mir nach einem Trigger geliefert, nachdem ein Sportler über die Zeitmessung mit Transponder gelaufen ist. Die Variablen, wie T1, Bib, Vorname, Jahrgang, Verein..... kann ich vorher bei der Triggerdefinition einstellen..
    @cherz Probier mal, ob sich das wie ein XML-String behandeln lässt, gugst Du hier.
    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!