LabVIEWForum.de
Eingabe String nach einen bestimmten Format bearbeiten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Eingabe String nach einen bestimmten Format bearbeiten (/Thread-Eingabe-String-nach-einen-bestimmten-Format-bearbeiten)

Seiten: 1 2


RE: Eingabe String nach einen bestimmten Format bearbeiten - JaO - 20.01.2017 14:43

(20.01.2017 13:56 )jg schrieb:  Das mit den führenden Nullen im String geht aber auch einfacher, dafür braucht es keine Schleife...

Gruß, Jens

Danke.


RE: Eingabe String nach einen bestimmten Format bearbeiten - GerdW - 20.01.2017 15:06

Das geht alles etwas kompakter:
[attachment=57229]
Big Grin


RE: Eingabe String nach einen bestimmten Format bearbeiten - JaO - 20.01.2017 17:16

(20.01.2017 15:06 )GerdW schrieb:  Das geht alles etwas kompakter:

Big Grin

Top1


RE: Eingabe String nach einen bestimmten Format bearbeiten - galilio - 26.01.2017 08:00

Hallo,


danke für die Vorschläge.
Nachteil bei dieser Lösung, dass es bei der Decimal Zahl aus versehen einen Buchstabe eingegeben wird.
z.B : Es könnte so was eingegeben werden:

NEA00000000M --> Das wird dann passieren und in diese Lösung könnte es gar nicht geprüft werden.

Anbei meine Lösungsvorschalg (seh Vorhang)


Problem bei diese Lösung:

Wenn ich so was eingebe:
NEA000000100 und nachher bei der decimal Zahl "000000100" die Länge überprüfe dann ist gleich 3.Also meine Lösungsvorschlag passt nicht mehr.


RE: Eingabe String nach einen bestimmten Format bearbeiten - GerdW - 26.01.2017 09:58

Hallo galilio,

Zitat:Nachteil bei dieser Lösung, dass es bei der Decimal Zahl aus versehen einen Buchstabe eingegeben wird.
z.B : Es könnte so was eingegeben werden: NEA00000000M
ScanFromString bietet einen Fehlerausgang und einen Ausgang für den restlichen String. Beides kann man abfragen und prüfen…
Wenn du Fehler erwartest, dann solltest du auch eine vernünftige Fehlerbehandlung programmieren!

Zitat:Wenn ich so was eingebe: NEA000000100 und nachher bei der decimal Zahl "000000100" die Länge überprüfe dann ist gleich 3.Also meine Lösungsvorschlag passt nicht mehr.
Falsch: es passt nicht der Lösungsvorschlag, sondern der verwendete Algorithmus!!! Wall

- Wenn du einen Zahlenwert in einen String umwandelst und dabei Wert auf führende Nullen legst, dann solltest du auch diese führenden Nullen entsprechend formatieren!
- Wenn du wissen willst, wieviele Ziffern eingegeben wurden, dann musst du die Eingabe entsprechend prüfen (wie schon gesagt: ScanFromString bietet entsprechende Möglichkeiten)!

Quintessenz:
Wenn du genau weißt, nach welchem Schema du deine Eingabe prüfen willst, dann solltest du auch genau dieses Schema programmieren!
Wenn du "irgendwas" programmierst, was aber nicht zu deiner Aufgabe passt, darfst du dich nicht über Probleme beschweren!


RE: Eingabe String nach einen bestimmten Format bearbeiten - JaO - 26.01.2017 16:23

Der Ausgang "Verbleibender String" kannst du dann zur weitere Prüfung benutzen.
s. Anhang.


RE: Eingabe String nach einen bestimmten Format bearbeiten - galilio - 27.01.2017 09:32

(26.01.2017 09:58 )GerdW schrieb:  - Wenn du einen Zahlenwert in einen String umwandelst und dabei Wert auf führende Nullen legst, dann solltest du auch diese führenden Nullen entsprechend formatieren!
- Wenn du wissen willst, wieviele Ziffern eingegeben wurden, dann musst du die Eingabe entsprechend prüfen (wie schon gesagt: ScanFromString bietet entsprechende Möglichkeiten)!
Quintessenz:
Wenn du genau weißt, nach welchem Schema du deine Eingabe prüfen willst, dann solltest du auch genau dieses Schema programmieren!
Wenn du "irgendwas" programmierst, was aber nicht zu deiner Aufgabe passt, darfst du dich nicht über Probleme beschweren!

Wegen das Errorhandling hast du vollkommen recht.

Meine Frage bezieht sich genau auf einen Punkt:
(26.01.2017 09:58 )GerdW schrieb:  - Wenn du einen Zahlenwert in einen String umwandelst und dabei Wert auf führende Nullen legst, dann solltest du auch diese führenden Nullen entsprechend formatieren!

Wie kann ich dann den die führenden Nullen formatieren?
Ich finde das nicht in "ScanFromString"

Danke


RE: Eingabe String nach einen bestimmten Format bearbeiten - GerdW - 27.01.2017 10:09

Hallo galilio,

Zitat:Wie kann ich dann den die führenden Nullen formatieren?
Um Zahlen nach String zu formatieren, verwendet man FormatIntoString. Führende Nullen ergeben sich mit dem Formatcode "%09d", so wie es in der LabVIEW-Hilfe beschrieben wird!
Dummerweise ist dieser Check an dieser Stelle vollkommen sinnfrei: was soll es bringen, eine I32-Zahl in einen String zu formatieren und dann zu prüfen, ob exakt 9 Zeichen vorhanden sind???

Du musst also schon beim ScanFromString die Anzahl der Ziffern im String prüfen!
Wenn man sich mit RegEx auskennt, kann man MatchPattern verwenden - ich gehöre nicht zu dieser Gruppe.
Mein Workaround wäre ein Formatstring von %9s (um genau 9 Zeichen zu bekommen), gefolgt von %d mit Prüfung der übrig gebliebenen Zeichen (um auf exakt 9 Ziffern zu testen)…


RE: Eingabe String nach einen bestimmten Format bearbeiten - jg - 27.01.2017 10:58

Hier der RegEx String, mit dem du überprüfen kannst, ob der eingegeben String deinen Anforderungen entspricht:
Code:
NE[a-z,A-Z][0-9]{9}
Gruß, Jens