LabVIEWForum.de
String überprüfen, ob ein Zeichen oder Zahl enthalten ist. - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: String überprüfen, ob ein Zeichen oder Zahl enthalten ist. (/Thread-String-ueberpruefen-ob-ein-Zeichen-oder-Zahl-enthalten-ist)



String überprüfen, ob ein Zeichen oder Zahl enthalten ist. - Y-P - 05.09.2007 10:39

Hallo zusammen,

wie kann ich am geschicktesten überprüfen, ob in einem String entweder ein "S" in Kombination mit einer 2 stelligen Zahl (S00 - S99) drinsteht, oder aber eine Zahl (Double).
Der String soll auch nicht mehrere "S" haben und das S darf nur an der ersten Stelle sein.
Also nochmal kurz:

String darf entweder S00 bis S99 enthalten, oder eine (Double-)Zahl.

Mein VI habe ich mal angehängt und versuche es natürlich auch weiter.....

Gruß Markus

(VI LV 8.0)



String überprüfen, ob ein Zeichen oder Zahl enthalten ist. - Achim - 05.09.2007 11:02

Hi Markus,

evtl. so: Mit "Search/Split String" den String aufteilen und mit "=" gucken, ob das erste Zeichen ein "S" ist...oder gleich nach nem "S" im String suchen (ebenfalls mit "Search/Split String" und bei "gefunden" (offset <> -1) die beiden nächsten Zeichen nach dem "S" extrahieren. Wenn "nicht gefunden" (offset = -1) die Zahl nach Double wandeln

Gruss
Achim


String überprüfen, ob ein Zeichen oder Zahl enthalten ist. - eg - 05.09.2007 12:05

Ich würde zuerst versuchen mit Scan From String DBL zu scannen und wenn das VI einen Fehler zurückgibt, dann ist es halt keine Zahl, weiterhin kannst du deinen String auseinandernehmen.

ABER, wenn dein String immer mit einer "S" anfängt, dann würde ich doch nach Achims Vorschlag vorgehen.

eg


String überprüfen, ob ein Zeichen oder Zahl enthalten ist. - Y-P - 05.09.2007 12:18

Danke Euch beiden,..... Ich mach' mich mal ans Umsetzen. Wenn ich fertig bin, dann poste ich es....

Gruß Markus


String überprüfen, ob ein Zeichen oder Zahl enthalten ist. - Benjamin Fuchs - 05.09.2007 13:47

Wie wärs mit regulären Ausdrücken.

Kleines Beispiel (Nachdem ich nicht weiß was genau gefiltert werden soll)


[attachment=8477](VI LV 8.2)


String überprüfen, ob ein Zeichen oder Zahl enthalten ist. - Benjamin Fuchs - 05.09.2007 13:58

Kleines Beispiel:

Nur S00 - S99, sowie Zahlen.
S wird entfernt und darf nur am Anfangstehen

[attachment=8478](VI LV 8.2)

Und jetzt auch mit schönerem Ausgabe-Array

[attachment=8480](VI LV 8.2)

Ich hoffe das hilft weiter

PS:
Ich sehe gerade, dass nur Double Werte zugelassen sein sollen, ich denke damit sind Fließkommazahlen gemeint...
Mit [0-9]*[,]+[0-9]* als RegExp muss vor und nach dem Komma eine Zahl stehen... Somit werden auch "." ignoriert


String überprüfen, ob ein Zeichen oder Zahl enthalten ist. - Y-P - 05.09.2007 16:19

Auch Dir Danke Benjamin,

aber ich musste doch etwas umfangreicher programmieren, so dass auch keine andere Zeichen als S an der ersten Stelle und Zahlen eingegeben werden können, außer max. ein (!) Komma bei den Zahlen. Außerdem wird ein z.B. ein eingebenes s1 automatisch zu S01.

Hier ist mein Workaround, falls es jemand interessiert. Am Eingang wird in der Praxis das gleiche Array angeschlossen wie am Ausgang (lokale Variablen), d.h. gibt man falsche Werte ein, so werden sie gleich im selben Array verbessert und nicht in einem anderen......

Gruß Markus

(VI LV 8.0)