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 

String Array zur Laufzeit wandeln und einem Cluster zuführen



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!

27.11.2014, 23:46
Beitrag #1

hTed Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Nov 2014

2013
2005
DE



String Array zur Laufzeit wandeln und einem Cluster zuführen
Hallo LV Gemeinde,
ich möchte zur Laufzeit ein String Array in unterschiedliche Datentypen zerlegen und daraus ein Cluster erstellen.
Dazu lesen ich eine *.csv Datei ein und verwende das LV 'read from spreadsheet file.vi'. Dieses VI liefert mir auch die erste
Zeile der *.csv Datei. Darin habe ich definiert, in welchen Datentyp ich die String Werte konvertieren möchte.
Nur leider bekomme ich es nicht gebacken, mir zur Laufzeit ein passendes Cluster zusammen zubauen.

Könnt ihr da helfen?


Angehängte Datei(en)
13.0 .vi  convert_array_to_cluster.vi (Größe: 9,71 KB / Downloads: 210)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.11.2014, 08:02 (Dieser Beitrag wurde zuletzt bearbeitet: 28.11.2014 08:05 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: String Array zur Laufzeit wandeln und einem Cluster zuführen

Akzeptierte Lösung

Hallo hTed,

THINK DATAFLOW setzt voraus, dass alle Datentypen schon beim Editieren bekannt sind.

Ergo: du kannst zur Laufzeit keinen neuen Cluster aus beliebigen Datentypen erstellen!

Lösung:
Speichere deine Daten in einem generischen Format im Cluster - mitsamt der Information über den enthaltenen Datentyp. Wenn du dann an die Daten heranwillst, musst du eine (polymorphe?) Wrapper-Funktion erstellen, die dir die gewünschten Daten ausliest und konvertiert…

P.S.: In deinem "boolean"-Case kann man statt der Case-Struktur auch eine einfache ">0"-Funktion verwenden…

P.P.S.: Noch eine Idee:
Du kannst deine Daten auch in Variant-Attributen speichern, hier bist du bei der Wahl des Datentyps recht frei. Aber beim Auslesen musst du auch schon vorher wissen, welcher Datentyp in jedem Attribut verwendet/gespeichert wurde…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.11.2014, 10:51
Beitrag #3

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: String Array zur Laufzeit wandeln und einem Cluster zuführen
Wie Gerd schon sagte, der Cluster muss zur Laufzeit mit all seinen Elementen bereits vordefiniert sein. Kein Problem wäre es, die einzelnen Zeilen mit allen 39 Elementen in einen Cluster mit 39 Elementen zu konvertieren, wobei dann die Datenttypen der Clusterelemente unterschiedlich sein können. Es wäre auch möglich, dass, wenn in einem Element nichts drin ist, dieses verborgen wird.
Die Tabelle dürfte sich dann aber nicht ändern, d.h die erste Zeile mit den Konvertierungsinformationen müssste immer identisch sein - und damit wäre die Zeile eigentlich überflüssig.
Wenn Du so etwas willst, dann sage es und Dir wird geholfen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.11.2014, 11:51
Beitrag #4

hTed Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Nov 2014

2013
2005
DE



RE: String Array zur Laufzeit wandeln und einem Cluster zuführen
Hallo GerdW und Lucki,
vielen Dank für eure Antworten. Ich hab es verstanden, es geht nicht zur Laufzeit. Eigentlich wollte ich ein universelles VI schreiben, dass ich in späteren Projekten mal wieder verwenden kann um flexibel Daten von der Festplatte einzulesen.

Welches generische Format bietet LV eurer Meinung dazu an?

Gruß hTed
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.11.2014, 12:41 (Dieser Beitrag wurde zuletzt bearbeitet: 28.11.2014 12:42 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: String Array zur Laufzeit wandeln und einem Cluster zuführen
Hallo Ted,

du kannst entweder Variants verwenden - oder Strings (oder gleichwertige U8-Arrays).
Bei Strings ist man nicht auf "human-readable ASCII" beschränkt, sondern kann beliebige Bytes ablegen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.11.2014, 13:34
Beitrag #6

hTed Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Nov 2014

2013
2005
DE



RE: String Array zur Laufzeit wandeln und einem Cluster zuführen
Ich werde es so machen das ich schon im Code bestimme in welcher Array - Spalte für ein Datentyp vorhanden ist.
Dies ist nicht so flexibel, aber das muss nach dem LV Grundsatz funktionieren. Besten Dank.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.11.2014, 14:44 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2014 14:08 von Lucki.)
Beitrag #7

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: String Array zur Laufzeit wandeln und einem Cluster zuführen
Es sollte aber auch die Möglichkeit erwogen werden, überhaupt nichts zu machen und es bei der Texttabelle/dem Textarray zu belassen. Denn ein Textstring kann ja jedes Datenformat beschreiben - das ist ja jetzt auch bei Dir schon der Fall. (Man könnte beim Binärformat noch "false" und "true" statt "0" und "1" nehmen, damit es nicht mit einem Zahlenformat verwechselt werden kann)
Beim Lesen von Text gibt es die Möglichkeit des zeilenweisen Einlesens, was will man mehr?
Was ich sagen will: Wenn Du die Tabelle wie vorgeschlagen in irgendnein anderes "generisches Format" konvertierst und speicherst, dann ist nicht von vornherein gesagt, dass Du damit einen eleganteren Zugriff auf die Daten hast als mit der jetzigen CSV-Tabelle. Das wäre aber der Prüfstein, an dem Deine Bemühungen dann gemessen werden müssten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Elemente Cluster in Cluster ansprechen simcum 3 3.908 02.10.2023 10:49
Letzter Beitrag: th13
  String in Cluster konvertieren TpunktN 3 3.548 01.04.2021 15:44
Letzter Beitrag: TpunktN
Question MONATSverbrauch aus TAGES-String-Array berechnen Blondchen 1 4.677 19.02.2020 16:21
Letzter Beitrag: GerdW
  Wann schließe ich (ActiveX, Excel) Referenzen? + wie Cluster to Array? TpunktN 9 9.982 28.01.2020 14:14
Letzter Beitrag: TpunktN
  String in Array speichern für flexible Gruppenbenennung in TDMS Datei hansi_1 3 4.078 10.12.2019 09:45
Letzter Beitrag: Freddy
  (Array of )Cluster direkt als Icon? NoWay 4 4.135 16.10.2019 11:16
Letzter Beitrag: Trinitatis

Gehe zu: