LabVIEWForum.de
Daten "nebeneinander" schreiben - 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: Daten "nebeneinander" schreiben (/Thread-Daten-nebeneinander-schreiben)



Daten "nebeneinander" schreiben - Rigero - 07.09.2012 13:33

Hallo,

ich habe ein kleines Problem mit der Datenspeicherung. Ich nehme zwei Messdaten auf und möchte diese direkt nach dem Mesvorgang in eine Dateischreiben. Dann werden neue Messdaten generiert und diese sollen in die gleiche Datei geschreiben werden. Nun hängt er bei mir die Daten immer unten an ich möchte jedoch das er diese in eine neue Spalte und NICHT in eine neue Zeile schreibt.

Also es sieht im moment so aus:

x1 y1
x2 y2
x3 y3
z1 u1
z2 u2
z3 u3
n1 m1
n2 m2
n3 m3

und soll aber so aussehen:

x1 y1 z1 u1 n1 m1
x2 y2 z2 u2 n2 m2
x3 y3 z3 u3 n3 m3

Anbei auch ein bild un Beispiel Vi. Also so funktioniert es nicht.

mfg

Rigero


RE: Daten "nebeneinander" schreiben - jg - 07.09.2012 13:54

Mit Anhängen geht das nicht, in einer Datei kannst du nur etwas am Ende anhängen (also neue Zeilen).

In deinem Fall müsstest du in jedem Durchlauf die Datei komplett neu erzeugen.

Gruß, Jens


RE: Daten "nebeneinander" schreiben - Rigero - 07.09.2012 13:57

hm, das ist doof weil ich eben die Daten aus den vorrigen Messungen nicht immer mitschleppen wollte.

Also bleibt mir wohl nur die Datei untransponiert zu speichern und das dann später umzuschreiben : /.

danke für die schnelle Antwort.


RE: Daten "nebeneinander" schreiben - Lucki - 07.09.2012 17:49

(07.09.2012 13:57 )Rigero schrieb:  hm, das ist doof weil ich eben die Daten aus den vorrigen Messungen nicht immer mitschleppen wollte.
Was spricht denn dagegen? Die Daten werden also nicht in der Datei, sondern in einem im Schieberegister gespeicherten Array zwischengespeichert und bei jeder neuen Messung abgespeichert - was nicht unbedingt länger dauert als in einer Datei nur eine neue Zeile anhängen.(Siehe Beispiel)

Wenn Du aber eine unüberwindliche Allergie gegen dieses Zwischenspeichern hast, dann kannst Du auch bei jeder Messung die bisherigen Daten lessen und anschließend mit neuen Daten wieder abspeichern. Man darf sich das Lesen und Schreiben nicht so vorstellen, dass dabei der langsame Lesen/Schreibkop auf der HD jedesmal bewegt wird. Da gibt es mindesten einen großen Cache, der das abfängt - vorausgesetzt man begeht nicht den tödlichen Fehler wie Du und öffnet/schließt die Datei jedesmal.


RE: Daten "nebeneinander" schreiben - jg - 07.09.2012 17:54

(07.09.2012 17:49 )Lucki schrieb:  
(07.09.2012 13:57 )Rigero schrieb:  hm, das ist doof weil ich eben die Daten aus den vorrigen Messungen nicht immer mitschleppen wollte.
Was spricht denn dagegen? Die Daten werden also nicht in der Datei, sondern in einem im Schieberegister gespeicherten Array zwischengespeichert und bei jeder neuen Messung abgespeichert - was nicht unbedingt länger dauert als in einer Datei nur eine neue Zeile anhängen.(Siehe Beispiel)
Das hängt natürlich sehr davon ab, wie lange die Messung dauert. Falls da wirklich richtig viele Daten zusammenkommen, dann fährt man natürlich mit immer wieder Abspeichern besser.
Allerdings kann man dann auch das nachträgliche "Transponieren" der Datei vergessen.

Gruß, Jens


RE: Daten "nebeneinander" schreiben - Lucki - 08.09.2012 00:00

Noch andere Möglichkeit:
Wenn man mehrere dieser Einzeldaten
x1 y1
x2 y2
x3 y3
hintereinder abspeichert, dann kommt natürlich das heraus:
x1 y1
x2 y2
x3 y3
x1 y1
x2 y2
x3 y3
x1 y1
x2 y2
x3 y3
Von da im Nachhinein auf die gewünschte Ordnung
x1 y1 x1 y1 x1 y1
x2 y2 x2 y2 x2 y2
x3 y3 x3 y3 x3 y3
zu kommen, wäre recht aufwändig.

Besser wäre es da, die Einzeldaten vor dem Abspeichern erst mal so zu ordnen:
x1 x2 x3
y1 y2 y3
Hintereiander Abspeicheren mehrerer diese Daten liefert dann:
x1 x2 x3
y1 y2 y3
x1 x2 x3
y1 y2 y3
x1 x2 x3
y1 y2 y3
Diesen abgespeicherten Text braucht man nach Einlesen und Arraybildung nur noch zu transponieren, und man hat genau das gewünschte Format:
x1 y1 x1 y1 x1 y1
x2 y2 y2 u2 x2 y2
x3 y3 y3 u3 x3 y3

So würde es aussehen:
[attachment=41483]


RE: Daten "nebeneinander" schreiben - Rigero - 10.09.2012 09:43

Das Problem warum ich die Daten nicht "mitschleppen" will ist das sehr viele Daten generiert werden und das möglicherweise über lange Zeit und ich da bei anderen Programmen öfter schon das Problem hatte das dann das Array zu groß wird und dann Datenverlust auftritt.

Das mit dem Transponiert anzeigen geht zwar aber hilft mir nicht weiter da die Daten später von einem anderen Program verarbeitet werden sollen welches diese nicht transponieren kann.

Ich habe mir jetzt vorerst damit beholfen das ich die Daten nacheinander normal speichere und er beim beenden des Programs bzw. nach allen Wiederholungen die Datei auslese, dann transponiere und diese wieder Abspeicher.

Danke für eure Hilfe nochmals Big Grin