LabVIEWForum.de
Messdaten aus speziell formatierter Messdatendatei auslesen - 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: Messdaten aus speziell formatierter Messdatendatei auslesen (/Thread-Messdaten-aus-speziell-formatierter-Messdatendatei-auslesen)

Seiten: 1 2 3


Messdaten aus speziell formatierter Messdatendatei auslesen - pete3000 - 19.02.2009 19:21

Hallo zusammen,

ich hab es erfolgreich hinbekommen, dass meine Messdaten in eine TXT-Datei geschrieben werden und dass vor den eigentlichen Messwerten jeweils ein Datenkopf mit weiteren Infos geschrieben wird:

[attachment=16822]

Nun möchte ich eben diese Datei wieder auslesen, aber es klappt noch nicht richtig, denn u.a. konnte ich z.B. nicht herausfinden, wie ich einen Zeiger auf die Anfangsposition der Messdaten setzen kann. Ich habe versucht die Schreibaktion vom Ende her in eine Leseaktion umzuwandlen.

Hier mein bisheriger Versuch:

[attachment=16823]

---

Lv85_img

[attachment=16821]

[attachment=16824]


Messdaten aus speziell formatierter Messdatendatei auslesen - jg - 19.02.2009 19:44

Stell das Read From Textfile VI auf "Zeilenlesen" um, lies deine 5 Header-Zeilen ein und ab da den Rest des Files ein:
[attachment=16825]

Ach ja, Sequenz brauchst du nicht, und das Express-VI auch nicht.

Lv85_img[attachment=16826]

Gruß, Jens


Messdaten aus speziell formatierter Messdatendatei auslesen - pete3000 - 20.02.2009 01:35

Vielen Dank für deine Antwort und das VI, Jens! Top1

Wenn ich die Messdatei auf einen einzelnen Messwertblock zusammenstreiche, funktioniert es wunderbar:

[attachment=16831]

Hätte ich wahrscheinlich erwähnen sollen, dass es mehrere Blöcke sind. Mein Fehler! (Hab außerdem den letzten Messwert gelöscht, da scheint in der Messwertaufnahme irgendwie immer ein Außreißer drin zu sein...)

Momentan wird ja durch die Konstante "-1" von Zeile 6 bis zum Dateiende alles eingelesen. Das sieht dann so aus:

[attachment=16834]

Mal von dem "Grafikfehler" (?) abgesehen, der jetzt erstmal nebensächlich ist: Wie bekomme ich es hin, dass ich nur einen bestimmten Messwertblock eingelesen bekomme (es sind jeweils 401 Zeilen) ? Hab ein bißchen rumprobiert, steck aber leider wieder in einer Sackgasse.Hmm

Um das Ganze zu vereinfachen, hab ich mal eine neue korrigierte Messdatei hochgeladen, in der dann 3 Blöcke von Messwerten existieren, jeweils mit 5 Zeilen Info-Kopf davor:

[attachment=16833]


Messdaten aus speziell formatierter Messdatendatei auslesen - pete3000 - 20.02.2009 14:22

Ich bin jetzt so weit, dass ich einen Block mit den Messwertepaaren als 1D-String-Array auslesen kann.

[attachment=16838]

Anschließend ist dann Schluss und ich bekomme das Array einfach nicht so umgemodelt, dass ich 2 Arrays mit den X- bzw. Y-Werten rausbekomme. Sad

Hab das Programm in der derzeitigen Form nochmal hochgeladen. Vielleicht kann mir ja jemand weiterhelfen?

---

Lv85_img

[attachment=16839]

---

Lv80_img

[attachment=16840]

---

TXT-Datei mit den Messdaten ist weiterhin die neue Version aus meinem Beitrag zuvor...


Messdaten aus speziell formatierter Messdatendatei auslesen - pete3000 - 20.02.2009 15:32

Hatte spontan ne Idee, die auch funktioniert hat. Bin allerdings mit der programmiertechnischen Umsetzung nicht zufrieden, weil sie doch recht umständlich scheint. Ich müsste das Ganze noch in einer Schleife für jedes der 401 Elemente ausführen. Geht das evtl. auch eleganter?

[attachment=16842]

[attachment=16843]

---

Lv85_img

[attachment=16841]


Messdaten aus speziell formatierter Messdatendatei auslesen - jg - 20.02.2009 20:08

Ein Array schreit immer nach einer Behandlung in einer FOR-Schleife:

[attachment=16846]

Gruß, Jens


Messdaten aus speziell formatierter Messdatendatei auslesen - Lucki - 21.02.2009 12:07

' schrieb:Ein Array schreit immer nach einer Behandlung in einer FOR-Schleife:
Habs auch mal nachgebaut, so funktionierts auch:
[attachment=16848]


Messdaten aus speziell formatierter Messdatendatei auslesen - pete3000 - 23.02.2009 14:56

Erstmal vielen Dank an Jens G und Lucki für die Unterstützung! :top2:Hatte auch selbst mit dem "Spreadsheet String to Array" rumprobiert, aber irgendwie hab ich wohl was nicht ganz richtig gemacht. Dank eurer Hilfe klappt dieser Teil jetzt aber.

Ich hab mal etwas weiter programmiert und kann nun einen der insgesamt 3 Messwertblöcke zur Darstellung im XY-Graph auswählen.

Leider musste ich dabei feststellen, dass mir dabei einzelne Messwerte zu Beginn oder am Ende fehlen (je nachdem wie ich die Paramter für die einzulesenden Zeilen einstelle), wenn ich einen anderen Block als den ersten auswähle! Der letzte Wert wird dann teilweise als 0 angegeben, obwohl dort ein noch ein Messwert existiert. Ich krieg es mal wieder einfach nicht hin, dass er alle Messwerte eines Blocks einliest und hab keine Ahnung, was nun schon wieder nicht stimmt... Pccrash

Hab euch das aktuelle VI nochmal hochgeladen, vielleicht könnt ihr mir ja weiterhelfen... (TXT-Datei mit den Messdaten ist weiterhin die letztgenannte weiter oben)

---

Lv85_img

[attachment=16861]


Messdaten aus speziell formatierter Messdatendatei auslesen - jg - 23.02.2009 15:40

Hier ein Bsp, das alle 3 Blöcke auf einmal einliest.

Lv85_img[attachment=16864]

Kleiner "Schönheitsfehler" besteht noch bei deiner zuletzt hochgeladenen Text-Datei: Es fehlt ganz am Schluß ein Return-Zeichen. So wie es jetzt ist, kommt beim 3. Block eine Fehlermeldung, da die letzte Zeile nicht mit einem Zeilenvorschub abgeschlossen ist, und das erwartet das VI.

Offtopic2
Mal noch was anderes: Ich halte dein Dateiformat für sehr unflexibel.
Kritikpunkte: Was ist, wenn du mal nicht 401 Messpunkte pro Messung aufnimmst? Von Vorteil fände ich, wenn im Header auch die Anzahl der Messpunkte steht, dann könnte man das auswerten und dann die entsprechende Anzahl an Zeilen lesen.
Gleiches gilt für die Anzahl der Messungen, die du zusammen in eine Datei packst. Das könnte man sicherlich dynamisch machen, aber für dich wäre es sicher einfacher, wenn auch diese Info irgendwo am Anfang im Header der Datei steht.


Messdaten aus speziell formatierter Messdatendatei auslesen - pete3000 - 23.02.2009 15:54

' schrieb:Hier ein Bsp, das alle 3 Blöcke auf einmal einliest.

Lv85_img[attachment=44547:Messdate...ke_lesen.vi]

Kleiner "Schönheitsfehler" besteht noch bei deiner zuletzt hochgeladenen Text-Datei: Es fehlt ganz am Schluß ein Return-Zeichen. So wie es jetzt ist, kommt beim 3. Block eine Fehlermeldung, da die letzte Zeile nicht mit einem Zeilenvorschub abgeschlossen ist, und das erwartet das VI.

Offtopic2
Mal noch was anderes: Ich halte dein Dateiformat für sehr unflexibel.
Kritikpunkte: Was ist, wenn du mal nicht 401 Messpunkte pro Messung aufnimmst? Von Vorteil fände ich, wenn im Header auch die Anzahl der Messpunkte steht, dann könnte man das auswerten und dann die entsprechende Anzahl an Zeilen lesen.
Gleiches gilt für die Anzahl der Messungen, die du zusammen in eine Datei packst. Das könnte man sicherlich dynamisch machen, aber für dich wäre es sicher einfacher, wenn auch diese Info irgendwo am Anfang im Header der Datei steht.

Danke, danke, danke, Jens! Guru1

Das Return-Zeichen fehlte wohl, weil ich die Messdaten manuell editiert hatte. Hab's dann wohl am Ende fälschlicherweise gelöscht.

Danke auch für die Kritik an meinem Dateiformat! Freu mich immer über Verbesserungsvorschläge! Werd das dann im endgültigen Programm entsprechend umsetzen... Top1