LabVIEWForum.de
String in Cluster konvertieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: String in Cluster konvertieren (/Thread-String-in-Cluster-konvertieren)



String in Cluster konvertieren - TpunktN - 01.04.2021 13:54

Mahlzeit zusammen,

ich bekomme einen Stringüber TCP und ordne den dann einem Cluster zu:
[attachment=61744]
Da wollte ich mal fragen ob das evtl leichter geht, einfach aus Neugier, hier ist das jetzt fertig. Vielleicht gibt es da ein super VI das ich einfach nicht kenne..

Grüße Timo

Edit: Ich dachte an Funktionen wie "Format into String" oder "Scan from String".


RE: String in Cluster konvertieren - BNT - 01.04.2021 14:26

Hi Timo
Wenn die Datenstruktur bekannt und unveränderlich ist, kannst Du einen entsprechenden Custer als Typedef erzeugen, und damit einen Typecast auf den via TCP/IP empfangenen String anwenden. Fertig.

Ich vergaß zu erwähnen, dass für die obige Methode die Daten binär űbertragen werden műssten. Vielleicht hast Du den Sender ja auch in Deinen Händen.

Wenn die Daten als ASCII ankommen, dann ist Deine Implementierung genau richtig.

Gruß Holger


RE: String in Cluster konvertieren - jg - 01.04.2021 14:34

Hallo Timo,

das hängt sehr davon, ob dein "Reply"-String erstens immer vollständig ist und an der Stelle mit den Zahlen auch wirklich Zahlen enthält:

Bsp:
so funktioniert es:
[attachment=61745]

So kommt dann überall 0 heraus:
[attachment=61746]

Da hat deine Version doch gewisse Vorteile.

Direkt in den Cluster, da fällt mir nichts ein, das würde nur gehen, wenn der String ein "Binärformat" wäre, welches du auf den Cluster Typecasten könntest.
(EDIT: Wie Holger ebenfalls gerade geschrieben hat)

Gruß, Jens


RE: String in Cluster konvertieren - TpunktN - 01.04.2021 15:44

(01.04.2021 14:26 )BNT schrieb:  Wenn die Datenstruktur bekannt und unveränderlich ist, kannst Du einen entsprechenden Custer als Typedef erzeugen, und damit einen Typecast auf den via TCP/IP empfangenen String anwenden. Fertig.
Ich vergaß zu erwähnen, dass für die obige Methode die Daten binär űbertragen werden műssten. Vielleicht hast Du den Sender ja auch in Deinen Händen.
Leider kommt der String per ASCII an und auf den Sender habe ich keinen Einfluss :/ Aber auf jedenfall mal interessant zu wissen, sollte ich mal binäre Cluster empfangen.

(01.04.2021 14:34 )jg schrieb:  das hängt sehr davon, ob dein "Reply"-String erstens immer vollständig ist und an der Stelle mit den Zahlen auch wirklich Zahlen enthält
Ich hoffe das der String vollständig ist, sonst sind die Daten auch nutzlos Tongue
Habe mal die Kommunikation mitgeschnitten und beide Methoden mit einem String gefüttert:
[attachment=61747]
Kommt das gleiche Ergebnis raus, nur das [^;] hatte ich beim ersten Durchlauf vergessen, da hat mir der Errorhandler direkt auf die Finger geklopft Tongue
Zitat:Da hat deine Version doch gewisse Vorteile.
Eine Fehlermeldung zu bekommen, bei einem Fehler sehe ich erstmal hilfreicher als falsche Werte zu verwenden. Und mit Scan from String ist es auf jedenfall kompakter, jedenfalls wenn es mal etwas größeres gibt, hier ist das ja ncoh übersichtlich.

Habe mit einem festen String mal alles in 'ne for loop gepackt und 10.000 mal durchlaufen lassen (nicht das es relevant wäre..), mein Methode brauchte (gemessen mit Tick Count) zwischen 4 und 8 ms, bei Scan from String waren es immer 0 ms Tongue


mfg und frohe Ostern
Timo