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 

flatten to string : type string



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!

12.01.2007, 13:25 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2007 13:25 von horstboehse.)
Beitrag #1

horstboehse Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Jan 2007

7.1
2004
kA


Deutschland
flatten to string : type string
Hallo!

Ich suche schon seit längerem nach einer eleganten Methode, VI-Ein- und Ausgänge unabhängig von dem Übergabedaten-Typ zu machen.

Dafür gibt es ja zB die VIs "Flatten to String" und "Unflatten from string". Ersteres flattet die Daten und gibt zusätzlich ein ominöses Ineteger-Array mit dem Namen "type sting" zurück.

Meine Hoffnung lag nun darin, dass in diesem Array die Struktur des ursprünglichen Datentyps steht und man damit den String wieder unflatten kann.
Aber das "Unflatten from string" -VI erwartet als Übergabeparameter den konkreten Datentyp.

Nun meine Fragen:

Wozu dient dieses ominöse Array "type String"?
Gibt es eine Möglichkeit, auch ohne die explizite Angabe des Datentyps ein Unflatten durchzuführen?

Ich hoffe, ihr könnt mir weiter helfen.

Gruß, Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.01.2007, 13:47 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2007 14:00 von Achim.)
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
flatten to string : type string
Hi,

der TypeString ist doch wohl ne Beschreibung, wie deine "flattened Data" zu interpretieren ist. Meiner Einschätzung nach brauchst du das zwingend! So wie ich's verstehe, kannst du diesen TypeString aufspalten und darin enthalten ist die Information "TypeDescriptor" (die letzten beiden Stellen). Such danach mal in der LV-Hilfe! Allerdings gibts das bei LV8.x nicht mehr. Hier könntest du nach "Variant" wandeln und dann den Daten Attribute (z.B. ne "1" ) hinzufügen. Dieses Attribut könntest du in nachfolgenden VI's dann interpretieren, z.B. 1=boolesches Array, 2=double,....und dann mit ner Case-Struktur in den passenden Typ wandeln. So könntest du immer Variant weitergeben, in jedem VI halt dann erst mal den Typ checken...

Um Eingänge "unabhängig" vom Übergabetyp zu machen, wäre die Alternative wohl, ein polymorphes VI zu erstellen. Dabei werden mehrere VI's mit dem stets gleichen Ein-/Ausgangsschema (Connector), aber verschiedenen Datentypen erstellt (bool, double, int, var, array, cluster, ref.). Jedes VI verarbeitet die ihm entsprechenden Daten. Alle VI's werden aber als polymorphes VI "zusammengeführt", d.h. du lädst "MyPolymorphVI.vi" in den Code, und schließt eine beliebigen Datentyp an. Ist dieser in deinem VI definiert, passt sich das VI automatisch an...aber das kennst du sicher...war nur so'n Gedanke...

Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.01.2007, 08:15
Beitrag #3

horstboehse Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Jan 2007

7.1
2004
kA


Deutschland
flatten to string : type string
Danke, du hast mir schon mal weitergeholfen.

Allerdings möchte ich nicht nur einzelne Variablen übergeben, sondern ein Cluster aus vielen Elementen.
Und immer, wenn ich ein Element hinzufügen will, muss ich in jedem Vi die Ein- und Ausgänge ändern. Das nervt.

Kann man diesen Type-String nicht irgendwie in den Cluster-Typ zurückwandeln, um im Sub-VI zu unflatten?
Ich möchte halt gern erreichen, dass ich dem Cluster ein Element hinzufügen kann, ohne dass die Sub-VIs, die dieses Element nicht brauchen,
sondern lediglich andere aus dem Cluster, davon berührt werden.

Hatte überlegt, die einzelnen Clusterelemente in einem Variant als Atribute zu speichern und in den Sub-VIs wieder auszulesen. Aber das ist auch irgendwie umständlich!?

Gruß, Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.01.2007, 08:53 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2007 08:55 von Achim.)
Beitrag #4

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
flatten to string : type string
Hi,

ich würde vorschlagen, du erstellst "Type Definitions". Dabei erstellst du ein beliebiges Bedienelement (z.b. ein Cluster), machst auf das Bedienelement nen Rechtsklick und wählst Customize. Hier speicherst du das Element als StrictTypeDef und fügst es in alle benötigten VIs ein bzw. ersetzt dein dort evtl. schon vorhandenes Cluster mit der TypeDef. Jedes Mal, wenn du die TypeDef aus nem beliebigen VI heraus änderst, ändert sich es auch in allen anderen VIs! Ob du dann in allen VIs auf alle Elemente zugreifst oder nicht, bleibt dir überlassen. Auf jeden Fall sind dann alle (neue und alte) Elemente in allen VIs verfügbar...

Noch Fragen?

Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.01.2007, 09:05 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2007 09:33 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
flatten to string : type string
Hier mal ein Beispiel für die Umwandlung Cluster in String und wieder zurück. Der Zweck der Übung war die Abspeicherung und das Wiedereinlesen der komplexen Clusterdaten in eine INI-Datei. Das Speichern/Lesen habe ich weggelassen, gezeigt wird nur die beiderseitige Konvertierung. Wenn gewünscht, poste ich auch das VI mit.
Auch so, um dieser Frage zuvorzukommen: Warum werden Typenstring-Aus und -Eingang der beiden VIs nicht einfach miteinander verbunden, statt diese Konstante zu erzeugen? Antwort: Weil die Reihenfolge normalerweise vertauscht ist, d.h zuerst wird aus der INI-Datei gelesen, und erst dann und auch nur evtl. wieder zurückgespeichert.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.01.2007, 09:40
Beitrag #6

horstboehse Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Jan 2007

7.1
2004
kA


Deutschland
flatten to string : type string
@Achim:

Danke, du bist der Beste!!

Genau das wollte ich.
Aber ich wusste bis jetzt nicht, dass man das irgendwie als Strict Type Def speichern kann.

Vielen Dank

@Lucki:

Danke dir auch!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  String Eingabeelement automatisch ergänzen... Roter Milan 2 3.453 26.10.2023 12:42
Letzter Beitrag: Roter Milan
  Unfallten from String-Error 74 Schrankwand 5 5.573 25.08.2023 11:26
Letzter Beitrag: rolfk
  Umwandlung String in Zeitstempel simcum 3 2.751 14.02.2023 17:41
Letzter Beitrag: Achim
  Tabulator in String-Control einlesen Abrow 1 2.184 12.12.2022 10:12
Letzter Beitrag: jg
  Kein leeren sondern gar kein String in Array einfügen Philipp_O 3 4.084 25.08.2022 15:06
Letzter Beitrag: Kiesch
  String "live" kontrollieren Philipp_O 2 3.899 07.06.2022 09:05
Letzter Beitrag: Philipp_O

Gehe zu: