LabVIEWForum.de
langer String nach Zeichenzahl gegliedert in array schreiben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: langer String nach Zeichenzahl gegliedert in array schreiben (/Thread-langer-String-nach-Zeichenzahl-gegliedert-in-array-schreiben)



langer String nach Zeichenzahl gegliedert in array schreiben - gammel - 22.09.2014 10:45

Hallo,

ich habe folgendes Problem.
Ich erhalte Messwerte als String geliefert und ich weiß, dass ein Messwert 4 Zeichen lang ist. Nun möchte ich die einzelnen Messwerte in einem Array darstellen.

Bei meinem VI habe ich ein Beispiel String angegeben und ich weiß nicht was ich als Trennzeichen eingeben muss, damit er nach jeder vierten Zahl trennt.

Lv09_img2


Danke


RE: langer String nach Zeichenzahl gegliedert in array schreiben - jg - 22.09.2014 11:15

Da dein Eingangsstring kein sinnvolles Trennzeichen enthält, kannst du auch nicht mit "Spreadsheet String to Array" arbeiten. Stattdessen musst du dich schrittweise durch den String arbeiten. Hier 2 Möglichkeiten, die mir auf die Schnelle einfallen:
[attachment=50832]
Gruß, Jens


RE: langer String nach Zeichenzahl gegliedert in array schreiben - GerdW - 22.09.2014 11:46

Noch einer:
[attachment=50833]


RE: langer String nach Zeichenzahl gegliedert in array schreiben - gammel - 22.09.2014 13:11

danke euch beiden. hat funktioniert. :-)


RE: langer String nach Zeichenzahl gegliedert in array schreiben - Lucki - 22.09.2014 13:18

Die einfachste von den 3 genannten Vorschlägen ist wohl die 2. Lösung von Jens. Und die ließe sich so noch weiter vereinfachen:
[attachment=50834]


RE: langer String nach Zeichenzahl gegliedert in array schreiben - GerdW - 22.09.2014 13:26

Hallo Lucki,

oder ganz ohne (relativ langsame) String-Parse-Funktion:
[attachment=50835]
Wenn man ein Bytearray empfängt, kann man auch damit rechnen…


RE: langer String nach Zeichenzahl gegliedert in array schreiben - jg - 22.09.2014 13:43

@Lucki:
FOR-Loop ist der While-Loop vorzuziehen, da hier der LV-Compiler schon vorab den benötigten Speicherplatz am Ausgang der Loop berechnen und reservieren kann. Bei der While-Loop kann er das nicht. Bei einem sehr langen String sollte die While-Loop also deutlich langsamer sein.

Gruß, Jens


RE: langer String nach Zeichenzahl gegliedert in array schreiben - Lucki - 22.09.2014 13:43

(22.09.2014 13:26 )GerdW schrieb:  Wenn man ein Bytearray empfängt,...
Wenn der String empfangen wird, z.B über eine serielle Schnittelle (worüber Gammler aber nichts verrät), dann gäbe es das ganze Problem der Sringtrennung sowieso nicht: einfach 4-byteweise aus dem Empfangspuffer lesen.

@Jens
Zitat:FOR-Loop ist der While-Loop vorzuziehen, da hier der LV-Compiler schon vorab...
Das ist schon klar, nur hat Gammel nichts gesagt, dass der String riesenlang ist. Also ist davon auszugehen, dass die Stringlänge des Beipieles in etwa repräsentativ für die Stringlänge ist.

Und in so einem Fall vertrete ich ein ganz anderes Optimierungskriterium als als Du und Gerd. Da frage ich nicht: Mit welcher Variante spare ich xx µs Ausführungszeit ein, sondern ich frage: Wie spare ich yy Sekunden Nachdenken ein, wenn ich den Code ein Jahr später wieder sehe und ihn verstehen muss.