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!
Hallo!
Ich habe folgendes Problem: Ich habe ein Test SubVi erstellt um einen String zu teilen, nach Leerzeichen zu durchsuchen und dann HEX Werte in Dezimalwerte umzurechnen (siehe Anhang), das funktioniert auch wie gewollt.
Wenn ich nun das SubVI allerdings in mein gesamtes VI einfüge indem ich ebenfalls einen String einlesen möchte (der genauso aussieht) bekomme ich keine Werte an den Anzeigen.
Meine Vermutung: Die Werte die im Return Values angezeigt werden sind in Wahrheit nicht in 4er Blöcke unterteilt, sondern in 2er Blöcken (oder in einem anderen Format) daher funktioniert die Durchsuchung nicht. (Im SubVI wurde der String aus Return Values einfach kopiert)
Gibt es etwa eine Möglichkeit an den Block Return Values eine Art "Ausgang" zu hängen um die Daten im 4er Block Format an das SubVI zu übergeben oder muss ich eine andere Lösung suchen?
Ja das Problem ist aber das der String am Ausgang angezeigt wird.
Anmerkung: Der String besteht aus Messwerten und muss daher aufgeteilt werden was nicht funktioniert.
Das komische ist aber das ich den String schon vorher aufteile nach 0601 (Offsetwert) durchsuche was aber funktioniert. Nur Leerzeichen geht nicht.
Es ist immer extrem hilfreich bei Strings, die aus irgendeinem Protokoll kommen und bei denen es um HEX geht, die Darstellungsart anzuzeigen, soll heißen: Rechtsklick -> Visible Items -> Display Style.
Es sieht mir nämlich sehr danach aus, als ob deine Anzeige gerade auf HEX-Format steht.
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!
Die Option Display Style finde ich gerade nicht aber du hast recht, die Anzeigen stehen auf HEX.
Aber woran liegt das Problem, es handelt sich nur um die Anzeige
Und wie gesagt, ich durchsuche den selben String vorher nach 0601 was auch funktioniert, den selben Vorgang mache ich dann nur das ich nach Lerrzeichen durchsuche.
18.12.2015, 09:44 (Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2015 09:45 von jg.)
Da du deinen String im HEX-Format darstellst, existieren die Leerzeichen nur in der Anzeige (zwecks Übersichtlichkeit). Vgl. das z.B. mit einem HEX-Editor.
Und du durchsuchst deinen String garantiert nicht nach 0601, sondern nach \06\01 (hier nehme ich stark an, dass diese String-Konstante Codes-Format dargestellt wird).
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!
Ja mein Fehler, duchsucht wird nach \06\01 ist auch im VI zu sehen.
Aber wie durchsuche ich den Strung nun nach einem Leerzeichen, mit "\" oder " " geht es nicht.
Habe schon so ziemlich alles probiert, die Anzeigen verändern, verändert ja nur die Darstellung nicht die weitere Verarbeitung des Strings.
18.12.2015, 10:10 (Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2015 10:34 von GerdW.)
ich hatte dir doch schon in deinem anderen Thread gesagt, dass man auch bei Stringkonstanten unbedingt den Anzeigemodus anzeigen lassen sollte:
Wirklich "alles" kannst du ja augenscheinlich nicht probiert haben…
Zitat:Aber wie durchsuche ich den Strung nun nach einem Leerzeichen, mit "\" oder " " geht es nicht.
Dein String enthält doch überhaupt keine Leerzeichen!?
Und die Suche nach einem Leerzeichen ist halt die Suche nach einem Leerzeichen:
Beide Snippets liefern genau die erwarteten Ergebnisse: im ersten wird der Hexwert 0x0601 gefunden, im zweiten das erste Leerzeichen…
Bisher hast du es auch noch nicht geschafft, mal ein VI mit aussagekräftigen Daten statt nur irgendwelcher Bilder anzuhängen…
Ich hab euch nun ein Bild des SubVI angehängt.
Das mit dem Anzeigemodus hilft mir nichts da ich wie schon vorher erwähnt nach \06\01 suchen und teilen kann.
Was ich aber vermute ist das der String weder Leerzeichen noch "\" enthält und ich die nur durch das Format "Escpae Sequenzen" entstehen.
Daher eine neue Frage: Gibt es eine Möglichkeit den String nach jeden Byte zu trennen? (Allerdings so wie es im Anzeigeformat HEX zu sehen ist, nicht wie im "Normalen"
Ich habe jetzt auch das SubVI angehängt, die Anzeige auf Escape Sequenzen gestellt und nach "\" gesucht, da diese ja in der Anzeige vorkommt. Nur wird es auch hier nicht gefunden und der String geteilt.