NEWS
Regexp um Datenpunkte zu zählen will nicht
-
Versuche gerade die Datenpunkte einer Ebene zu zählen.
Also, z.B.
rflink.0.channels.Baldr_1 rflink.0.channels.F007_TH_3
Mit regex101.com hab ich mir das zusammen geklickt.
rflink\.0\.channels\..*_.$
Im Test scheint es auch zu gehen:
Im Blockly geht's aber nicht, es kommt keine Ausgabe.
Ne Idee, wo der der Fehler liegt - außer an mir. :<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="=Z+K`oN`}r/=Z9Hl$gAx">i</variable> </variables> <block type="controls_forEach" id="(ghX#/B:,bwk2Y1,*=)*" x="-112" y="163"> <field name="VAR" id="=Z+K`oN`}r/=Z9Hl$gAx">i</field> <value name="LIST"> <block type="selector" id="oWbHJRz=D/BuP`J2kLF}"> <field name="TEXT">channel[state.id=rflink\.0\.channels\..*_.$]</field> </block> </value> <statement name="DO"> <block type="debug" id="H+RgwE%zAC79xkZa4f#R"> <field name="Severity">error</field> <value name="TEXT"> <shadow type="text" id="4@(@;:uF3Cb7vT+9/cN["> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="^C7CG0(:.6f8eg6$ZN+*"> <field name="VAR" id="=Z+K`oN`}r/=Z9Hl$gAx">i</field> </block> </value> </block> </statement> </block> </xml>
-
@padrino
Der Selektor möchte keinen RegExp (diesen baut er selbst), sondern einen String: -
@paul53
Hm, ok, geb' zu, ich hab' keine Ahnung, was ich da wirklich mache , aber so nutze ich das "schon immer", und so steht es in der Auswahl: -
@padrino sagte:
so nutze ich das "schon immer", und so steht es in der Auswahl:
Das ist kein RegExp. So nutzt man es, wenn Aufzählungen als Zusatzbedingung einem Kanal zugeordnet sind. Teste einfach mal meinen Vorschlag.
-
@paul53
Sorry, versteh' nicht was Du mir sagen willst.
Also Dein Vorschlag geht nicht, oder, macht zumindest nicht das, was ich wollte.
Er zeigt damit einfach alles, also die gesamte (Baum)Struktur an.
Ist das selbe Ergebnis, wie, wenn ich es (sonst) so genutzt habe. -
-
Wie oben im Screenshot von regex101 zu sehen (das was blau ist)
Also nur die Ebene rflink.0.channels.XXX_X und nix darunter, also z.B. nicht rflink.0.channels.XXX_X.YYY
Mein Ziel ist über die Anzahl der Datenpunkte die Anzahl der Geräte zu ermitteln.
-
@padrino
Das kann der Selektor nicht (ich wüsste nicht - wie). Dann muss man in der Schleife filtern. -
@padrino sagte:
Mein Ziel ist über die Anzahl der Datenpunkte die Anzahl der Geräte zu ermitteln.
Der Selektor findet nur Datenpunkte, keine Geräte.
-
@paul53
Also über den String zu gehen und den selber abzuarbeiten, wäre mein letzter Weg gewesen.
Hatte gehofft mit einer regex das ganze eleganter lösen zu können, bzw. nicht so viel unnötigen "traffic" zu generieren.Ich will ja auch keine "Geräte" zählen, sondern Datenpunkte, weil ich weiß "ein Datenpunkt = ein Gerät".
Vermutlich drücke ich mich da auch falsch aus, bin a) kein Programmierer und b) kein Profi, was das ganze JS angeht...
Danke Dir trotzdem (fürs Aufzeigen der Alternative ).
-
PS: kann ich dann in Zukunft das channels/state.id aus dem Blockly Block einfach weglassen?
-
@padrino sagte:
kann ich dann in Zukunft das channels/state.id aus dem Blockly Block einfach weglassen?
Ja, in den meisten Fällen.