INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Ein paar "Was ist das eigentlich" Fragen



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!

26.02.2009, 10:32 (Dieser Beitrag wurde zuletzt bearbeitet: 26.02.2009 10:34 von rolfk.)
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Ein paar "Was ist das eigentlich" Fragen
' schrieb:Vielleicht ist es einfacher so zu erklären (zumindest für C++ler o. ä.):

Flatten To String ist wie Type Cast von Irgendwas auf Stringtyp
Unflatten From String ist wie Type Cast von String auf Irgendwastyp

Ein Unterschied gibt es, man kann bei diesen VIs noch den Byte Order angeben.

Nein ein Typecast ist leider etwas anderes! Ein Typecast verändert den Datentyp einer Variablen ohne die Representation im Speicher zu veränderen. LabVIEW hat auch einen Typecast und der lässt sich nur auf flache Daten (d.h. Skalars und Arrays of Skalars, wobei auch ein String ein Array of Skalar ist) anwenden. In C kann man grundsätzlich auch eine Struktur (LabVIEW Equivalent zu einem Cluster) Typecasten aber wenn diese Pointers enthält bekommt man nach einem Typecast nicht den Inhalt dieser Pointer sondern nur 4 Bytes die dem Pointer selber entsprechen.

Ein Flatten geht die ganze Datenstruktur durch und kopiert alle darin enthaltenen Daten in einen zusammenhängenden Speicherbereich. Für Skalars und Array of Skalars ist das grundsätzlich equivalent zu einem Typecast aber sobald man darin einen Cluster hat der Arrays und Strings enthält werden diese mit in den flattened Datenstrom hineinkopiert, so nötig auch rekursiv.
Unflatten macht die ganze Operation von Flatten wieder rückgängig.

Warum ein flattened Datenstrom als String representiert wird? Ganz einfach: die FILE I/O, GPIB, VISA, TCP/IP usw. VIs haben (oder hatten zumindest) alle einen String Ein- und Ausgang weil man sie eben oft mit ASCII Kommandos verwendet aber grundsätzlich kann dieser String auch binäre Daten enthalten wenn der Empfänger auf der anderen Seite damit umgehen kann. Um nun solche Flattened Daten nicht jeweils noch durch ein String To Byte Array durchschleifen zu müssen (oder was man auch hätte machen können und im Nachhineine gesehen wohl logischer gewesen wäre) all diese Funktionen auch mit Byte Arrays kompatibel zu machen (polymorphe VIs bestehen aber erst seit Version 5.0 oder so), wurden sie halt als String ausgeführt.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Ein paar "Was ist das eigentlich" Fragen - rolfk - 26.02.2009 10:32

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  XControl - wie funktioniert das eigentlich Hasenfuss 3 7.560 10.03.2013 18:06
Letzter Beitrag: GerdW
  Statemachine zur Erfassung von Messdaten nach ein paar tausend Messwerten sehr langsa nemesismf 4 5.003 20.09.2011 09:10
Letzter Beitrag: chrissyPu
  Umstieg auf, bzw. Neueinstieg in LabVIEW, ein paar Fragen RabenFlug 41 29.230 02.09.2010 10:58
Letzter Beitrag: RabenFlug
  Fragen zu PID Regler belu003 3 6.066 18.08.2010 17:50
Letzter Beitrag: Lucki
  Newbie-Fragen zur GUI Tito 3 4.876 18.06.2010 10:45
Letzter Beitrag: GerdW
  Fragen zum Buch Aisling 9 8.325 22.08.2009 11:10
Letzter Beitrag: Aisling

Gehe zu: