LabVIEWForum.de - Tabelle oder Liste auslesen

LabVIEWForum.de

Normale Version: Tabelle oder Liste auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Ich möchte die Werte einer Tabelle oder Liste auslesen und muß Sie dann zu einem String zusammensetzen. Ich hab einiges probiert, bekomme es aber nicht hin.
Wie kann ich feststellen, wieviele Einträge ein Tabelle oder Liste hat und wie kann ich auf diese gezielt zugreifen und auslesen?
Nimm' doch "Array to Spreadsheet-String".

Gruß Markus

Offtopic2: Bist Du Schalke-Fan?
Hallo,

eine Tabelle verhält sich programmatisch wie ein Array, also sind alle Arrayfunktionen drauf anwendbar Smile

(08.03.2011 13:40 )S04View schrieb: [ -> ]Ich möchte die Werte einer Tabelle oder Liste auslesen und muß Sie dann zu einem String zusammensetzen.
siehe 1)

(08.03.2011 13:40 )S04View schrieb: [ -> ]Wie kann ich feststellen, wieviele Einträge ein Tabelle oder Liste hat
siehe 2)


(08.03.2011 13:40 )S04View schrieb: [ -> ]wie kann ich auf diese gezielt zugreifen und auslesen?
siehe 3)


Einfach ausprobieren, bis du die gewünschten Ergebnisse hast Smile

Beste Grüße,
NWO
(08.03.2011 14:02 )NWOmason schrieb: [ -> ]Hallo,
eine Tabelle verhält sich programmatisch wie ein Array, also sind alle Arrayfunktionen drauf anwendbar Smile
...


Hallo NWO,
danke für die Hilfe. Das ist jetzt sehr gut zu verstehen. Ich hatte das Problem zu erkennen, dass man "Strings verknüpfen" auch auf eine komplette Tabelle oder ein Array anwenden kann.

Nun hab ich aber noch dieses kleine Problem. Wenn die gewünschten Werte in der Tabelle sind sollen die Einträge zu einem String mit TAB als Separator zusammengefaßt werden. Das geht wohl nur über ein for-Schleife, oder?

Wenn ich eine solche for-Schleife mache, wie kann ich auf die Anzahl der Zeilen (Wert 5 in Deinem Beispiel) zugreifen, als Wert meine Anzahl der Schleifendurchläufe?
Einfacher ist einfach am Eingangstunnel die Indizierung zu aktivieren. Dann läuft die Schleife automatisch so oft wie Werte in der Tabelle stehen. ;-)

*edit* Achja, zu beachten ist dabei, dass die Indizierung für Labview das wichtigere Kriterium ist als ein angeschlossenes N. Wenn N angeschlossen ist und indiziert wird funzt es trotzdem, wird aber so oft abgearbeitet wie Array Elemente da sind (sprich: Man kann sich auf die Weise nicht mehr oder weniger elegant einen Zugriff auf die einzelnen Array Elemente über Array indizieren sparen, wenn man weiß, dass das Array immer größer ist als N).
(08.03.2011 14:13 )S04View schrieb: [ -> ]Nun hab ich aber noch dieses kleine Problem. Wenn die gewünschten Werte in der Tabelle sind sollen die Einträge zu einem String mit TAB als Separator zusammengefaßt werden. Das geht wohl nur über ein for-Schleife, oder?

Dafür kannst du auch String-Funktionen benutzen. (Man kann eigentlich fast alles so formatieren, wie man es braucht) Smile

Beste Grüße,
NWO
Hallo NWO,

danke für Deinen Vorschlag ich muss den jetzt auch mal ausprobieren.

Mittlerweile habe ich eine Lösung mit einer Schleife gefunden. Ich weiß aber nicht wie schön oder komfortabel sie ist.

Mir ist aber nicht klar warum die Property 'ObjektNamen' einer Tabelle nicht außerhalb der Schleife stehen darf, sondern innerhalb stehen muß. Kann mir das jemand erklären? Fehlermeldung: 'Array indizieren hat einen offenen Anschluß'. Die Tabelle hat übrigens nur ein Spalte.
(08.03.2011 14:13 )S04View schrieb: [ -> ]Nun hab ich aber noch dieses kleine Problem. Wenn die gewünschten Werte in der Tabelle sind sollen die Einträge zu einem String mit TAB als Separator zusammengefaßt werden. Das geht wohl nur über ein for-Schleife, oder?
Das Einfachste ist hier die Verwendung der Funktion "Array nach Tabellen-String. TABs als Trennelemente sind Standard, da muß nichts mehr hinzuformatiert werden.
[attachment=32682]
Oder, falls Tabelle wie bei Dir einspaltig:
[attachment=32683]
(08.03.2011 17:50 )S04View schrieb: [ -> ]Mir ist aber nicht klar warum die Property 'ObjektNamen' einer Tabelle nicht außerhalb der Schleife stehen darf, sondern innerhalb stehen muß. Kann mir das jemand erklären? Fehlermeldung: 'Array indizieren hat einen offenen Anschluß'.

Das liegt am Tunnel, mit dem das 2D Array der 'ObjektNamen' an die Schleife angeschlossen ist. Dort ist Auto-indexing angeschaltet. Die For-Loop pickt sich nun bei jedem Durchlauf ein Element des 2D-Arrays heraus. Dies ist dann nur noch ein 1D-Array/Vektor und dieser hat ja nur eine Spalte. Demzufolge kann mit dem 'Array indizieren' nicht auf Zeilen und Spalten zugegriffen werden.

[attachment=32685]

Du kannst demzufolge die Arraygrößenbestimmung weglassen und direkt über Autoindexing bei einer For-loop auf alle Elemente nacheinander im Array zugreifen.


Genaueres zum Indexing findest du auch hier:

Different Wiring Tunnels with For Loops and While Loops in LabVIEW
http://digital.ni.com/public.nsf/allkb/B...E700491E34

und hier:

Enabling Auto-Indexing for Loops
http://zone.ni.com/reference/en-XX/help/...ndexing_1/


Da bei dir die Tabelle bei dir jedoch nur eine Spalte hat, ist die einfachste Lösung wie in Post #6 und #8 gezeigt.


Beste Grüße,
NWO
Was ich ja auch schon in Beitrag 2 geschrieben habe. Aber als Stuttgart-Fan wird man wohl von Schalkern seit letzter Woche ignoriert. Big Grin

Gruß Markus

(08.03.2011 18:52 )Lucki schrieb: [ -> ]
(08.03.2011 14:13 )S04View schrieb: [ -> ]Nun hab ich aber noch dieses kleine Problem. Wenn die gewünschten Werte in der Tabelle sind sollen die Einträge zu einem String mit TAB als Separator zusammengefaßt werden. Das geht wohl nur über ein for-Schleife, oder?
Das Einfachste ist hier die Verwendung der Funktion "Array nach Tabellen-String. TABs als Trennelemente sind Standard, da muß nichts mehr hinzuformatiert werden.

Oder, falls Tabelle wie bei Dir einspaltig:
Seiten: 1 2
Referenz-URLs