Laden...

Text Parsen und Datentypen im Text bestimmen.

Erstellt von thas vor 13 Jahren Letzter Beitrag vor 13 Jahren 868 Views
T
thas Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren
Text Parsen und Datentypen im Text bestimmen.

Hallo!

Ich bin gerade dabei einen Text zu parsen und in diesem Text sind Variablen und deren Werte gespeichert welche mit Tabs voneinander getrennt sind.

Nun können die Werte Boolean, Hexadezimal, Integer, Double, String etc. sein
Ich möchte nun rausfinden um welchen Datentyp es sich handelt...

Bei der Suche bin ich auf .Tryparse() gestoßen aber ich hab 2 Probleme damit:
1.) Für Hexadezimalwerte hab ich nichts gefunden
2.) Ich muss auf jeden Datentyp einzeln abfragen...

Daher meine Frage: Hätte jemand einen Hinweis für eine elegante Lösung?

Danke & lg,
Wolfi

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo thas,

mit TryParse bist du schon auf dem richtigen Weg.

Wenn du eine Hex Zahl parsen willst dann kannst du den NumberStyle beim Parsen setzen.
Siehe: How to: Convert Between Hexadecimal Strings and Numeric Types (C# Programming Guide)

Dass du da jeden Typen abfragen musst mag zwar nicht schön aussehen, aber da wird dir fast nichts anderes übrig bleiben.
Evtl. könntest du über Regex ein Pattern schreiben das dir sagt ob der Wert eine Zahl, hex, String oder was auch immer ist.
Das ist sicherlich damit möglich, aber in Regex kenn ich mich nicht so aus
Hier ein Tutorial dazu: [Artikel] Regex-Tutorial

Aber was ist überhaupt der Sinn hinter der ganzen Sache?
Kann der User bei dir einfach die Werte als String eingeben und du machst nachher damit alle möglichen Dinge.
Dabei musst du aber beachten dass es da viele Sonderfälle geben kann, welche man nur sehr schwierig abfragen kann.
z.B. ist AA ein hexwert oder ein String???

Gruss
Michael

T
thas Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren

Hallo MichlG!

An RegEx hab ich noch nicht gedacht aber dieser Ansatzt klingt ziemlich plausibel für mich. Werd mich mal mit der Umsetzung beschäftigen und später mein Resultat posten ..

DANKE & lg
Wolfi