LabVIEWForum.de - Nach bestimmter Messwertanzahl "umbrechen"

LabVIEWForum.de

Normale Version: Nach bestimmter Messwertanzahl "umbrechen"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo, kurze und sicher ganz einfache Frage.. Wink

Also. Ich schreibe Messwerte von einem 2D-Array nach Excel. Soweit so gut. Die Messkanäle werden spaltenweise dargestellt. Nun kann es ja bei vielen Messwerten (>65536) passieren, dass Excel ein problem hat, da alle Zeilen befüllt sind. Ich möchte also, wenn eine festgelegte Menge an Datensätzen vorhanden ist, ein paar Spalten nach rechts rücken und wieder in der ersten Zeile bis zur letzten schreiben - dann das ganze von vorne.

Gibts da ne einfache Möglichkeit? Ich hab mich mit einer While-Schleife und der Funktion "Aus Array enfernen" versucht, komme aber zu keinem vernünftigen Ergebnis Sad

thx

mfg Smile
Hallo Fidel,

eine einfache Frage, die leider ohne wichtige Hintergrund-Infos gestellt wurde: Wie schreibst du die Daten nach Excel? Wo ist dein Beispiel-VI?

Zitat:Gibts da ne einfache Möglichkeit?
Ja.

Zitat:Ich hab mich mit einer While-Schleife und der Funktion "Aus Array enfernen" versucht, komme aber zu keinem vernünftigen Ergebnis
Wie willst du das auch, wenn du einfach Daten entfernst?

Idee:
2D Array in Blöcke mit maximaler Zeilenzahl aufteilen. Diese Blöcke mittels BuildArray (oder InsertIntoArray) jeweils als neue Spalten "rechts" anhängen. Dabei beachten, dass dein altes Excel nur max. 256 Spalten verwalten kann...

Hier mal ein Beispiel für ein 1D-Array:
[attachment=34752]
Kannst du sicher für dein 2D-Array anpassen Smile
Hallo Gerd, danke schonmal für die Antwort. Im Moment hab ich sowas in die Richtung probiert:

[attachment=34753]

Im Ansatz klappt das auch. Ich entferne immer den benötigten Teil aus dem Array und schreibe diesen nach Excel. Die Schleife läuft solange bis das Array leer ist. Im Moment wird mir aber nur nach je 100 Messwerten meine Spaltenbeschriftung wieder eingefügt (was auch sinnvoll ist), aber wie ich ein paar Spalten nach rechts komme im Excel hab ich damit nicht lösen können.

Dann werd ich mich mal daran versuchen das Array umzuformen...

mfg Smile
Hi Fidel,

du solltest dir darüber klar werden, dass WriteToSpreadsheetfile zeilenorientiert arbeitet. Da wirst du nie (mit dieser Methodik) neue Spalten rechts anhängen können - was weniger an der Funktion selbst liegt, sondern vielmehr am verwendeten CSV-Format...
Ok, dann ist natürlich klar warum das nicht klappt Wink

Ich versuche mich gerade an deinem Lösungsvorschlag und komme gerade nicht weiter als:

[attachment=34755]

Am Ende stehen in meinem Array natürlich nur die Werte der letzten Spalte. Nun kann ich am Ende der Schleife nicht einfach indizieren, da ich dann ja ein 3D-Array habe womit ich nicht mehr viel anfangen kann. Ich hatte daher die Idee vor der Zählschleife ein neues Array zu initialisieren und dann mein TeilArray in der Schleife in jedem durchlauf stückchenweise das neue Array zu ersetzen. Das klappt aber leider nicht, da ich die Anschlüsse nicht verbinden kann (zwei inkompatible Arrays).

Tja...ich bekomme zwar in der Schleife erstmal die benötigten Teilarrays, mir fehlt aber noch der zündende Gedanke um die in einem 2D-Array zusammenzufügen... :/

mfg
Hallo Fidel,

Zitat:der zündende Gedanke
Wie wäre es mit einem Schieberegister und einem BuildArray zusätzlich in der Schleife? Du willst ja Daten "zusammenpacken"...
Hallo, ja die Idee hatte ich, aber dann muss ich entweder wieder mit einem 3D-Array arbeiten oder es klappt nicht:

[attachment=34756]

mfg
Hallo Fidel,

noch ein zündender Gedanke: Rechtsklick aufs BuildArray und "Arrays verknüpfen" Smile
Und bevor die nächste Frage kommt: manchmal muss man mit TransposeArray rumspielen, um die richtige Anordnung im Zielarray zu erhalten...

Noch'ne Idee:
Bei großen Datenmengen kann es hilfreich sein, das Zielarray vorher in der richtigen Größe zu initialisieren und dann die Teilblöcke per ReplaceArraySubset dort einzutragen - das erspart evtl. das Umsortieren mit Transpose und Build...
Hallo Gerd, wusste gar nicht das es diese Verknüpfungsmöglichkeit gibt Wink Soweit sieht das schonmal ganz gut aus. Wenn ich fertig bin werde ich hier nochmal ein Bild reinstellen. Noch eine kleine Frage: Ich würde gern immer dann wenn ich "umbreche" zwischen den "neuen" und "alten" Datensätzen eine Leerspalte einfügen. Dient lediglich der Optik, würde das aber deutlich übersichtlicher machen Smile

Hast du dafür noch eine Idee...? Im Moment stückel ich das Ausgangsarray in der Schleife zusammen, transponiere dann außerhalb und schreibe anschließend nach Excel... Ich müsste also irgendwo in der Schleife ansetzen. Mit einem leeren String array kann ich ja schlecht verknüpfen da der Typ dann nicht mehr stimmt. Und mit Nullen auffüllen ist auch nicht das was ich suche..

Danke schonmal bis hierher

mfg Smile
Hallo Fidel,

Zitat:wusste gar nicht das es diese Verknüpfungsmöglichkeit gibt
Rtmfx Smile

Zitat:eine Leerspalte einfügen
Solange du mit Zahlen arbeitest, kannst du auch nur "Leerspalten" einfügen, die eine Zahl beinhalten. Dies kann bei einem Float-Datentyp z.B. Null sein, aber auch NaN...
Wenn du "echte" Leerspalten einfügen willst, musst du mit Strings arbeiten - die können nämlich "leer" sein!

Zitat:schreibe anschließend nach Excel
Es ist für's Verständnis wesentlich einfacher, wenn man sich an dieser Stelle von dem Begriff "Excel" löst. Du erzeugst eine Textdatei im CSV-Format! Und es steht dir frei, diese Textdatei mit allem zu befüllen, was dir in den Sinn kommt...
Seiten: 1 2
Referenz-URLs