LabVIEWForum.de - Mustererkennung in string

LabVIEWForum.de

Normale Version: Mustererkennung in string
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
hallo,

wie könnte ich die Mustererkennung von folgenden string gestalten:

+0000,00 +0000,00 +0000,00 +0000,00

wenn die vorzeichen und die stellen vor dem komma wechseln können, habe schon selbst verschiedene varianten durchprobiert mit der hilfe aber es klappt einfach nicht, gut wäre es natürlich auch wenn er es erkennt das die englische einstellung auf dem rechner läuft also ein Dezimalpunkt anstatt des kommas kommt, aber das ist dann die kür.

Danke MfG jojo
Hi,

lad doch mal deinen Versuch zusammen mit einer Beispieldatei hoch. Sonst kann man nur raten...

Glas1 Glas2 (und das funktioniert nur bedingt)


geraten hab ich mal folgendes:

-> Tabellen-String nach Array VI
-> Tabellen-String ist dein einzeiliges Beispiel mit Leerzeichen als Trennzeichen, daher...
-> Leerzeichen als Trennzeichen
->"%.3f" als Format-String (ohne Anführungszeichen und nur als Beispiel)
-> Ausgabe als Array

Gruß SeBa
[attachment=21369]
nur zur Veranschaulichung des genannten Weges!

du kannst vorhe rienfach im string alle Punkte durch ein komma ersetzen, dann klappts auch mit dem punkt.

LG
Torsten
Also die erkennung als prinzipieller ablauf funktioniert schon, ein erster Abschnitt bis zu den Nullen wird korrekt erkannt (rot markiert), jetzt muss ich aber die Mustererkennung erweitern um den zweiten oben beschriebenen term, ich habe mal den kompletten term und meine erkennungsvariante angehangen, der erste teil geht wie gesagt bis zu den nullen, die später aber auch zahlen werden und eine unterschiedliche stellenanzahl haben werden, aber vielleicht könnte man die erkennung an den leerstellen und dezimalzeichen festmachen denn die bleiben konstant.

Term:
01130 22336 23497,84 24771 21026 +0000,00 +0000,00 +0000,00 +0000,00

Muster:

[0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9][0-9],[0-9][0-9] [0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9][0-9] [~0-9][0-9]+,[0-9]+ [~0-9][0-9]+,[0-9]+ [~0-9][0-9]+,[0-9]+ [~0-9][0-9]+,[0-9]+

MfG jojo
Beim o.g. Weg ist es egal, ob die Zahlen ein Dezimaltrennzeichen haben oder nicht. Solange alle Blöcke durch ein Trennzeichen (Leerzeichen bei dir?) getrennt sind, werden sie auch einzeln erkannt.

Aber: Führende Nullen werden abgeschnitten.
Kann man auch ändern, ich behaupte aber mal, dass die führenden Nullen keinen interessieren, dich auch nicht denn sonst hättest du es bestimmt gesagt.

Gruß SeBa
Was soll denn die Mustererkennung als Ergebnis liefern?
Danke für eure hilfe, die muster soll als eine art eingangskontrolle dienen, also ob der term diesen prinzip entspricht und ob er vollständig ist, wenn ja erfolgt dann die zerlegung in einzelne Teile und eine konvertierung in String in Dezimalzahlen.

eigentlich müßte es dann ja so gehen:
[0-9][0-9] [0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9][0-9],[0-9][0-9] [0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9][0-9] [s] [~0-9][0-9]+[s] [~0-9] [0-9]+[s] [~0-9] [0-9]+[s] [~0-9] [0-9]+

oder? geht nämlich nicht aber wo liegt der fehler? [s] habe ich für ein leerzeichen, [~0-9] für ein vorzeichen und [0-9]+ für den Zahlenterm genommen
Also ich versteh zwar nicht warum du das machen willst, aber wenn unbedingt...

.. dann halt so:

[attachment=21374]

[0-9]+[s][0-9]+[s][0-9]+,[0-9]+[s][0-9]+[s][0-9]+[s][+|-][0-9]+,[0-9]+[s][+|-][0-9]+,[0-9]+[s][+|-][0-9]+,[0-9]+[s][+|-][0-9]+,[0-9]+


Gruß SeBa

PS:
Hab irgendwo im Bild ein [s] vergessen, der String im Beitrag stimmt aber.


Edit:
Wo hast du denn [~0-9] für Vorzeichen her?
Hallo jojo2203,

hier ist ein Beispiel, das die gefundenen übereinstimmungen in ein Array packt.

Schneller gehts mit einer For-Schleife mit Abbruchbedingung, die ist aber bei LV8.2 noch nicht vorhanden.

Grüße

kpa

Lv82_img
jetzt gehts. danke!
hatte da noch ein problem mit einem zeiger auf den string, war mir noch nicht so aufgefallen vorher.
das ganze soll so eine art eingangskontrolle sein, damit die nachgeschalteten schritte bezüglich stringkonvertierung usw. nicht aus dem tritt kommen.

die [~0-9] stammt aus der hilfe, steht aber wohl für alle zeichen ausser zahlen und das hätte mir ja auch gereicht.

mfg jojo
Seiten: 1 2
Referenz-URLs