LabVIEWForum.de
Mustererkennung in string - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Mustererkennung in string (/Thread-Mustererkennung-in-string)

Seiten: 1 2


Mustererkennung in string - jojo2203 - 21.09.2009 10:04

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


Mustererkennung in string - SeBa - 21.09.2009 11:20

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


Mustererkennung in string - TSC - 21.09.2009 12:02

[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


Mustererkennung in string - jojo2203 - 21.09.2009 12:04

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


Mustererkennung in string - SeBa - 21.09.2009 12:23

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


Mustererkennung in string - schrotti - 21.09.2009 12:42

Was soll denn die Mustererkennung als Ergebnis liefern?


Mustererkennung in string - jojo2203 - 21.09.2009 13:08

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


Mustererkennung in string - SeBa - 21.09.2009 13:54

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?


Mustererkennung in string - kpa - 21.09.2009 14:07

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


Mustererkennung in string - jojo2203 - 21.09.2009 14:14

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