Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Die Pumpe gibt immer an (wohl im Wechsel=
01:57.45 ul (Addresse:Volumen Unit)
01:2.3 seconds (Addresse:Zahl Unit)
Wenn sie aber wohl das Target volume erreicht hat, springt sie um auf:
01*57.45 ul oder
01*3.0 seconds.
Wenn die Pump addresse 0 ist, dann verschwindet die 01.
Im Moment habe ich Probleme mit dem Wechsel von : zu *. Ich habe es mit [*:] versucht, so dass Labview checkt, ob eines der Zeichen da ist, aber nein hat nicht geklappt.
Danke fürs Anschauen.
Viele Gruesse
B.
Edit: Jens, danke für dein Beispiel. Klappt das Beispiel von Gerd mit %s.;[:*]%f %s, das ist die Stelle wo der String gelesen wird. Da gibt es eben die Probleme. Bin wieder am anderen Rechner.
' schrieb:Im Moment habe ich Probleme mit dem Wechsel von : zu *. Ich habe es mit [*:] versucht, so dass Labview checkt, ob eines der Zeichen da ist, aber nein hat nicht geklappt.
Wie in meinen Bsp, nur * solltest du nicht verwenden, * steht für "beliebig". Lieber die Escape-Sequenz, also *.
' schrieb:Edit: Jens, danke für dein Beispiel. Klappt das Beispiel von Gerd mit %s.;[:*]%f %s, das ist die Stelle wo der String gelesen wird. Da gibt es eben die Probleme. Bin wieder am anderen Rechner.
Probieren geht über studieren!
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Hallo LabView-Forum.
Ich wuerde gerne noch eine Sache zu diesen Strings fragen.
Mit der Match-Pattern.vi zerhacke ich einen String und diese regular expressions werden benutzt, um einen Hinweis zu haben, wo der String zerhackt werden soll.
Ich habe jetzt folgende Strings:
01:57.45 ul (Addresse:Volumen Unit)
01:2.3 seconds (Addresse:Zahl Unit)
01*57.45 ul
01*3.0 seconds
Neu ist nun hinzugekommen:
Fall a: 01:T*
bzw
Fall b: 01:T* 20 ul
Gerd hat mir ja schon gezeigt, wie ich 01: oder 01* mit der Match Pattern.vi abspalte.
Demzufolge bleibt im Fall a und b nur noch T* und T* 20ul uebrig.
Der uebriggebliebene Substring nach der Match Pattern.vi wird in eine Scan from String.vi eingefuettert. Als "format string" ist wird ebenfalls eingefuettert: %f %s. Wenn der String aber nun T* oder T* 20ul, entspricht das aber nicht mehr dem Format %f %s.
Wie koennte ich diesen Fall abfangen?
Ich dachte daran, eventuell jeden Substring zu testen, ob T* enthalten ist und falls ja, einen leeren String oder was anderes zurueckzugeben.
Ich sehe gerade nur nicht, wie man einen String darauf testen kann, ob T* (genau diese beiden Charaktere) in einem String enthalten sind und wie man dann ein True/False zurueckbekommt.
Zitat:Ich sehe gerade nur nicht, wie man einen String darauf testen kann, ob T* (genau diese beiden Charaktere) in einem String enthalten sind und wie man dann ein True/False zurueckbekommt.
Wirklich nicht?
Vielleicht hilft dir das hier auf die Sprünge:
Hallo Gerd.
Du hast recht. Ich war zu doof. Eben noch einmal die Hilfe von MatchPattern.vi angeschaut und dann bin ich ueber dieses offset past match gestolpert. Entschuldigung.
Gut, das verstehe ich soweit, glaube ich jedenfalls.
Du hast mir damals das Beispiel fuer die regular expression wie folgt genannt:
[:|\*]
Ich verstehe den | als oder. Ist das bitte korrekt?
Wie kann man sonst bitte auf drei Zeichen(ketten) suchen, also :, \*, und als Kombi T* (=eine Kombi, die von * only unterscheidbar)?
Vielen Dank.
Blue
Da ich leider meinen letzten Beitrag nicht mehr editieren kann, verfasse ich nochmals einen neuen. Entschuldigung.
Ich habe halt die Strings:
01: 0 ml
01* 0ml
01:T*
Ich weiß, dass ich mit [:|\*] die ersten beiden Fälle erwische, um dann mit der Scan from String.vi %f %s finden kann.
Im letzten Fall geht das aber nicht. Ich bin nicht in der Lage :T* als eine Kombination zu finden, das überschneidet sich mit dem :, weil die MatchPattern sofort den : sieht, statt noch nach T* oder :T* Ausschau zu halten. Die Reihenfolge bei [:|\*|:T*] zu aendern, brachte auch nix.