LabVIEWForum.de
Cluster aus Tabelle erstellen.... - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Cluster aus Tabelle erstellen.... (/Thread-Cluster-aus-Tabelle-erstellen)

Seiten: 1 2


Cluster aus Tabelle erstellen.... - t0mmy - 26.05.2008 17:11

hallo zusammen,

gibt es eine möglichkeit in LabVIEW eine txt-datei einzulesen (besteht aus x Zeilen; in jeder zeile ist ein name (string) und ein wert (double) die jeweils durch ein leerzeichen getrennt sind, etwa so: name[SPACE]3.142) und aus dieser einen cluster zu erstellen der folgende zuordnung hat: name => wert ???
das problem ist, dass die datei 200 einträge hat und ich das eigentlich nicht händisch machen möchteTongue

würd mich über tripps freuenSmile


Cluster aus Tabelle erstellen.... - Lucki - 26.05.2008 19:01

Dir einen Trip zu schenken würde mir zu teuer, aber ein Tip ist schon drin. Es ist nur eine von vielen Möglichkeiten.
Die String - Konstante steht für das Einlesen der Datei, das wirst Du ja allein schaffen.
[attachment=12691]


Cluster aus Tabelle erstellen.... - t0mmy - 27.05.2008 12:42

hi lucki,.. vielen dank erst mal für deine antwort.
das programm funktioniert so schon ganz gut... leider bleibt noch folgendes problem. wie kann ich jetzt auf einen wert des cluster zugreifen? mit der funktion "nach namen aufschlüsseln" klappts irgendwie ned? der zeigt mir keine elemente an?


Cluster aus Tabelle erstellen.... - Lucki - 27.05.2008 13:01

' schrieb:hi lucki,.. vielen dank erst mal für deine antwort.
das progemm funktioniert so schon gnaz gut... leider bleibt noch foldendes problem. wenn ich auf einen wert des cluster zugreifen möchte, wie soll ich das dann machen? mit der funktion "nach namen aufschlüsseln" klappts irgendwie ned? der zeigt mir keine elemente an?
Für die Clusterelemente wurden ja gar keine Namen vergeben, also funktioniert auch diese Funktion nicht. Es würde nur die Funktion Cluster aufsplitten funktionieren: oberer Anschluß ist Textelement, der untere die Zahl. Daß das Textelement der Name des Zahl sein soll, hast Du nur gedanklich realisiert, aber reinprogrammiert ist das nicht. Das Bespiel ist die 1:1 Umsetzung von dem was Du wolltest.


Cluster aus Tabelle erstellen.... - t0mmy - 27.05.2008 13:04

okay danke. so habe ich das noch gar nicht gesehen? ich dachte eigentlich dass die zuordnung name => wert automatisch passiert?! kannst du mir vllt sagen wie ich das ändern kann? die idee war eigentlich schon dass ich hinterher aus dem cluster mit einem namen den zugehörigen wert auslesen kann?


Cluster aus Tabelle erstellen.... - jg - 27.05.2008 13:09

Das wird so, wie du es dir vorstellst, nicht hinhauen.

Was Lucki vorgestellt hat als Struktur, ist ein "Array of Cluster". Das "Dumme" bei Arrays ist jetzt, das jedes Element identische Eigenschaften hat, sprich, jeder Cluster hat identische Labels und auch die Elemente des Clusters sind identisch, haben also gleiche Labels. Auch weitere Eigenschaften wie Farbe, Caption etc. sind identisch.

Auch wirst du es IMHO nicht schaffen, zur Laufzeit einen neuen Cluster aufzubauen, bei dem du die Labels der Elemente noch nicht kennst. Und nur dann könntest du ja wieder per "Unbundle by Name" darauf zugreifen.

Ausweg: Du bleibst bei der Struktur wie von Lucki vorgeschlagen und musst dich halt durch durch die Namensstrings suchen.

MfG, Jens


Cluster aus Tabelle erstellen.... - t0mmy - 27.05.2008 13:19

uff? heißt das dass LabVIEW keine methode anbietet aus einer liste die aus zeilen mit den einträgen "name[space]wert[new_line]" aufgebaut ist, einen cluster zu erstellen, der die zuordnung name => wert besitzt?

ich möchte jetzt nicht an euren meinungen zweifeln, aber geht dass nicht in jeder halbwegs anständigen sprache????

alternative wäre dann, dass ich einen cluster "per hand" definiere und alle felder einzlen ins frontpannel ziehe?

@ Jens G:
im moment hätte ich also eine nx2 matrix mit den jeweilgen zeileneinträgen name | wert??


Cluster aus Tabelle erstellen.... - jg - 27.05.2008 13:32

' schrieb:uff? heißt das dass LabVIEW keine methode anbietet aus einer liste die aus zeilen mit den einträgen "name[space]wert[new_line]" aufgebaut ist, einen cluster zu erstellen, der die zuordnung name => wert besitzt?

ich möchte jetzt nicht an euren meinungen zweifeln, aber geht dass nicht in jeder halbwegs anständigen sprache????
Jein,

du kannst natürlich (so wie von Lucki gezeigt) einen neuen Cluster aufbauen, der aus einem String mit Inhalt "name" und einer Zahl mit Inhalt "wert" besteht. Und dieser Cluster hat natürlich deine Zuordnung name=>wert. Was du dabei aber meiner Meinung nach nicht hinbekommst, dass der String im Cluster das Label "name" hat und die Zahl das Label "wert" (am ehesten kann man das noch bei einer textbasierten Sprache damit vergleichen, dass du den Variablennamen änderst).

(Einschub: was das Label eines Controls ist, ist hoffentlich klar?! Und Labels können halt nur im Edit-Modus geändert werden!)

Und nur dann kannst du ja wieder per Unbundle by Name darauf zugreifen, die Unbundle by Name Funktion greift schließlich auf die Labels der Elemente zu.

Trotzdem kannst du den Cluster natürlich aufsplitten, aber halt "nur" per normaler Unbundle Funktion.

MfG, Jens

:2hands:Ach ja, und Vorsicht hier im Forum mit so Aussagen, dass LV keine anständige Programmiersprache ist... 2hands


Cluster aus Tabelle erstellen.... - t0mmy - 27.05.2008 13:56

hehe okaySmile

danke für deine hilfe... ich denke ich habs jetzt verstanden... was ich allerdings immer noch ned ganz verstanden habe ist wie ich mir den cluster jetzt vorstellen kann? stimmt das mit der matrix? und vor allem: wie kann ich auf ein element zugreifen? dachte jetzt eigentlich, dass man auf ein element (wie auch immer es benannt wird) mit der funktion "aufsplitten" in die zwei dimensionen "name" und "wert" aufsplitten kann? also etwa so:
die LabVIEWfunktion x,y bekommt den cluster und ein indexelement (<= oder so ähnlich) als eingabe und liefert dann etwas, was ich mit der splittfunktion in 2 teile splitten kann?


Cluster aus Tabelle erstellen.... - Lucki - 27.05.2008 14:29

' schrieb:Was Lucki vorgestellt hat als Struktur, ist ein "Array of Cluster". Das "Dumme" bei Arrays ist jetzt, das jedes Element identische Eigenschaften hat, sprich, jeder Cluster hat identische Labels und auch die Elemente des Clusters sind identisch, haben also gleiche Labels.
Sehr gut, Jens, daß Du Dich einschaltest, denn ich bin beim Versuch es besser zu machen gescheitert, dachte mir aber: Jens wäre derjenige, der es packen würde.
Meine Vorstellung war, statt eines Array von Zahlenelementet ein Array von Clustern auszugeben, wobei jeder Cluster nur das Zahlenelement enthält. Dann kann jedes Zahlenelement seinen eigenen Untertitel haben:
[attachment=12705]
Was ich schafffte: In der For-Schleife bei jedem Durchgang das Clusterelement (reales Bedienelement als Dummy) mit Wert und richtigem Untertitel zu versehen. Wenn ich aber dieses Cluster per Indizierung aus der Schlaife herausführe und mir das Array anschaue, sind zwar die richtigen Werte drin, aber die Untertitel wurden nicht mit übertragen.
Edit: Irrtum, sehe gerade, im obigen, von Hand erstelltem Bild, wurden die Untertitel gewaltsam von LV vereinheitlicht. Verschiedene Untertitel funktionieren als so nicht, dagegen läßt sich wahrscheinlich nichts machen,
Was auf alle Fälle gehen müßte, wäre eine Cluster aller Werte, also gar kein Array. Da aber die Clusterlänge nicht variablel sein kann, setzt das voraus, daß die Tabelle eine feste Anzahl von Zeilen hat.