LabVIEWForum.de
Array aus Clustern in ein Datei-Format speichern? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Array aus Clustern in ein Datei-Format speichern? (/Thread-Array-aus-Clustern-in-ein-Datei-Format-speichern)



Array aus Clustern in ein Datei-Format speichern? - che-salih - 07.11.2013 14:10

Hi,

ich möchte mein Array aus Clustern in ein Datei-Format speichern und mit Excel auswerten. Ich möchte gerne, dass jeder Cluster eine Zeile im Excel darstellt. Mein Cluster besteht immer aus ein String (ID), TimeStamp und U8 Zahl. Mein Array beinhaltet dann n solche Cluster.

Wie muss man voran gehen? Ich habe mir unter Funktionen Datei I/O einige Datei Formate und Beispiele angeschaut aber komme nicht wirklich weiter. Als Datei-Format denke ich mal, dass die TDMS ganz gut geignet ist.

Ich habe hier noch ein kleines Beispiel geschrieben, wei meine Daten vorliegen.

Gruß

Che


RE: Array aus Clustern in ein Datei-Format speichern? - Achim - 07.11.2013 14:31

Wandel doch einfach alle Cluster-Inhalte in ner Schleife in nen String, pack diese Strings in ein 1D-Array und speicher das dann Zeilenweise ab...z.B. einfach als *.csv oder per ActiveX auch direkt in *.xls. In Excel formatiertst du dann deine Spalten wieder ins jeweilige Format (per Makro zum Beispiel).

A.


RE: Array aus Clustern in ein Datei-Format speichern? - che-salih - 07.11.2013 16:01

(07.11.2013 14:31 )Achim schrieb:  Wandel doch einfach alle Cluster-Inhalte in ner Schleife in nen String, pack diese Strings in ein 1D-Array und speicher das dann Zeilenweise ab...z.B. einfach als *.csv oder per ActiveX auch direkt in *.xls. In Excel formatiertst du dann deine Spalten wieder ins jeweilige Format (per Makro zum Beispiel).

A.

Ich hab das mal versucht umzusetzen, was du vorgeschlagen hast. Einfach mal als Einstieg. Ich bekomme da als Array ein 2D Array mit n Zeilen. Darin sind dann zeilenweise die Strings. Ich würde aber gerne die Datentypen beim Speichern beibehalten und nicht in Excel formatieren. Der Grund ist einfach, ich möchte mein Daten-Format etwas universell halten.

Ich möchte am Ende noch die Zeiten im Kalkulationsprogramm vergleichen.

Gibt es da keinen Weg dazu?

Gruß

Che


RE: Array aus Clustern in ein Datei-Format speichern? - Achim - 07.11.2013 16:12

Excel erwartet immer Strings...und je nach Formatierung in Excel wird das dann interpretiert. Du kannst die Formatierung von Zellen aber auch unmittelbar nach dem Schreiben des Werts aus LV heraus für jede Zelle "nachschieben"...das dauert aber...

Alternativ nimmst du ein Template...legst da ein Formatierungs-Makro pro Spalte an und rufst dieses bekannte (Name!) Makro aus LV aus, dann geht die Formatierung "am Stück" ruckzuck!

A.


RE: Array aus Clustern in ein Datei-Format speichern? - che-salih - 07.11.2013 16:37

Ok, ich wusste nicht das Excel immer Strings erwartet. Gut zu wissen.

Soweit ich verstanden habe, meinst du den Format String. Also ich formatiere den Wert bzw. die Zeile, bevor ich den .csv erstelle. Was meinst du mit das dauert? Wir wird eigentlich der .csv erstellt? Ist die Funktion, die ich ausgewählt habe die Richtige?

Wäre es denn nicht möglich, das Beispiel oben mal kurz demnach umzuformen? Das wäre wirklich sehr nett. Ich probiere natürlich weiter rum.

Das mit dem Template lass ich erstmal Smile

Gruß

Che


RE: Array aus Clustern in ein Datei-Format speichern? - Achim - 08.11.2013 07:28

(07.11.2013 16:37 )che-salih schrieb:  Soweit ich verstanden habe, meinst du den Format String. Also ich formatiere den Wert bzw. die Zeile, bevor ich den .csv erstelle.
Nein! Ich meine, du schreibst jeden einzelnen Wert in Zelle XY und formatierst unmittelbar danach die gleiche Zelle entsprechend deinem Bedürfnis. Und das meine ich mit "...das dauert". Einzelwertverarbeitung und dann auch noch Formatierung braucht viel Zeit, da kannst du vermutlich beim Befüllen der Zellen zugucken...

Ich würde versuchen, einfach alles als 2D-String-Array auf einmal zu schreiben, und dann komplette Spalten ("Range") zu formatieren, und zwar aus LV heraus.

Tipp: Zeichne dir in Excel ein Makro auf, während du manuell die kompletten Spalten auswählst und am Stück formatierst. Dieses Makro guckst du dir dann an, und baust die einzelnen Schritte (z.B. "Select.Range()...", oder so ähnlich) dann als Kette von ActiveX-Knoten in LV nach. Diese Formatierungsroutine packst du in ein SubVI und führst dieses im Anschluss ans Datenschreiben aus. Wichtig: Jede einzelene Referenz (Excel, Workbook, Worksheet, Range, Cell, etc.pp) musst du auch wieder in der umgekehrten Reihenfolge (1-2-3-4...4-3-2-1) schließen, ansonsten bleibt der Excel-Prozess im Task Manager aktiv, und es kann leicht zu Konflikten kommen.

Gruß
A.


EDIT: Ich hab vor langer Zeit mal ein kleines Tutorial für Word/ActiveX erstellt...das funktioniert ganz ähnlich, die einzelnen Aufgaben für die entsprechenden Methoden bei Excel kann ich so aus dem Stegreif auch nicht beantworten...
http://www.labviewforum.de/Thread-LabVIEW-Word-ActiveX--12157


RE: Array aus Clustern in ein Datei-Format speichern? - che-salih - 17.11.2013 17:19

Danke,

ich habe das mit TDMS Format gelöst. Das war etwas einfacher für mich. Hier noch die Lösungsansatz.

Che