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?
MfG
Bist Du sicher,
das dein Eingangs String immer genau 20 Zeichen lang ist?
Deine IF Anweisung steht auf genau 20.
Gruß
Freddy
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
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.
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.
[
attachment=54952]
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).
[
attachment=54953]
Gruß, Jens
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.
Hallo HTL,
ich hatte dir doch schon
in deinem anderen Thread gesagt, dass man auch bei Stringkonstanten unbedingt den Anzeigemodus anzeigen lassen sollte:
[
attachment=54954]
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:
[
attachment=54955]
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…
(18.12.2015 09:59 )HTL_HL schrieb: [ -> ]Aber wie durchsuche ich den Strung nun nach einem Leerzeichen, mit "\" oder " " geht es nicht.
Wenns gar nicht anders geht, wandelst du den String in ein Array of U8 und durchsucht und wandelst von Hand ...
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.
MfG