LabVIEWForum.de
ascii-Datei lesen - 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: ascii-Datei lesen (/Thread-ascii-Datei-lesen)



ascii-Datei lesen - dimitri84 - 09.03.2010 20:52

Guten Abend,

ich muss 'ne ascii-Datei einlesen. Zuerst einen kleinen Header mit Name, Samplingsrate und Messbeginn, dann die Messwerte (Zeit-Kolumne, Messwerte rechts, Messwerte links, Marker-Kolumne). Es hat alles funktioniert bis ich eine kleine Erweiterung eingebaut habe: Und zwar sollen bei Messungen der Hüfte bestimmte Abschnitte aus der Messung (aus dem Array) entfernt werden.

Lade ich mit dem VI eine nicht-Hüft-Messung, klappt alles.
Lade ich eine Hüft-Messung, sehe ich sie beim ersten Mal in voller Schönheit. Entfernt wird nix. Doof.
Lade ich dann die selbe Hüft-Messung nochmal, klappt alles. (Abschnitte werden entfernt.)
Lade ich nach dem Laden einer Hüft-Messung eine nicht-Hüft-Messung, bleibt der Graph für die rechte Seite leer! ?!?Hä?!
Lade ich die selbe Datei dann nochmal, klappt alles.

Ich komm' grad nicht drauf was ich da falsch gemacht habe.

Lv86_img(ausnahmsweise 8.6 weil ich daheim bin)
[attachment=25010]
[attachment=25011]

Bin natürlich auch für sonstige Verbesserungsvorschläge offen.


Gruß dimitri


ascii-Datei lesen - jg - 09.03.2010 21:15

Jaja, lokale Variablen..., die halten sich nicht an den Datenfluss. Und wenn etwas weiter rechts im Blockdiagramm steht, dann wird das noch lange nicht später ausgeführt als der Code weiter links im BD.

Problem: Deine lokale Variable "Name" wird schon parallel ausgelesen, bevor du den entsprechenden Wert aus der Datei gelesen hast.

Lösung: Sequenzierung erzwingen, z.B. einfach durch einen Sequenzrahmen um die Case-Struktur:
[attachment=25012]

Gruß, Jens


ascii-Datei lesen - Lucki - 09.03.2010 22:22

' schrieb:Bin natürlich auch für sonstige Verbesserungsvorschläge offen.
Das eigentlich Wichtige hat Jens ja schon gesagt. Kleiner Verbesserungsvorschlag:
a) Warum nicht das echte dt aus der Samplingrate der ASCII-Datei verwenden statt die Skalierung im den Grapheigenschaften als Konstante zu verstecken.
b) Für den Cursor den Cursorindex verwenden.
[attachment=25014]


ascii-Datei lesen - dimitri84 - 09.03.2010 23:11

Vielen Dank euch beiden!

@Jens ... das hätte gedauert bis ich da selbst drauf gekommen wäre.

@Lucki ... ja zuerst hatte ich auch'n Signalverlauf gebastelt mit dem richtigen dt. Dann hab ich's wieder verworfen (um Blockdiagramm zu sparen), weil es für die weitere Parameterextraktion vollig schnurts piep egal ist. Es handelt sind um reine qualitative Merkmale wie Steigung, Standardabweichung, Stetigkeit und Korrelation. (Zur Berechnung dieser müsste ich wieder ein Array aus dem Signalverlauf/Cluster erstellen.) Ich hab' mich aber auch noch nicht endgültig entschieden.

Was der Cursorindex ist hab ich mir bisher nie angeschaut. Guter Tip!


ascii-Datei lesen - Lucki - 10.03.2010 11:22

Die lokale Variable mußte übrigens gar nichts ein, dann bräuchte man auch die Sequenz nicht. Z.B so ginge es:
[attachment=25019]
Das VI will sich leider nicht auf v85 konvertieren lassen, es kommt Fehlermeldung.
Lv86_img[attachment=25020]


ascii-Datei lesen - dimitri84 - 10.03.2010 11:35

' schrieb:Das VI will sich leider nicht auf v85 konvertieren lassen, es kommt Fehlermeldung.
Das ist wegen der Eventstruktur.

Jo danke Lucki. Da sind noch ein paar andere Kniffe drin die ich mir merken werde. Z.B. find ich ja toll, dass das "Bruch-String nach Zahl" Buchstaben anscheinend ignoriert und man so gar keinen Offset angeben braucht u.a.. Ich werd' da heut abend daheim weiter machen. Vielleicht melde ich mich an anderer Stelle nochmal wegen der Parameterextraktion. Hab' mir damals mit MatLab Methoden ausgedacht da würd ich heute nur noch den Kopf schütteln.


Gruß dimitri


ascii-Datei lesen - Lucki - 10.03.2010 12:06

' schrieb:Z.B. find ich ja toll, dass das "Bruch-String nach Zahl" Buchstaben anscheinend ignoriert und man so gar keinen Offset angeben braucht u.a..
Da bin ich mit nicht sicher. Die ersten 5 Zeilen werden ja in einen 2D-Text-Array 5*2 konvertiert, und benutzt wird dann nur die zweite Spalte. Und diese enthält nichts als die reine Zahl.


ascii-Datei lesen - dimitri84 - 10.03.2010 12:58

Jetzt seh ich's auch. Nagut.