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



csv File lesen - dasepa - 29.11.2007 13:54

Hallo,

ich will mit einer csv File einen Motor und einen Frequenzgenerator steuern. Dazu sollen bestimmte Parameter einmal am Anfang des File definiert werden (Acceleration & Curve) und die anderen Parameter in jeder Zeile neu. Um zu kennzeichnen, was in welcher Zeile gemacht werden soll, steht in der ersten Spalte folgende Zuweisung:
// => Kommentarzeile: wird nicht verarbeitet
setacceleration => beschleunigung: wert nach strichpunkt setzt beschleunigung
setcurve => kurventyp: wert nach strichpunkt setzt kurvenart
dx => dataset: 4werte nach strichpunkt setzten festgelegte parameter, wenn ;; wird wert aus vorheriger zeile gelesen
jx => jump: wert nach strichpunkt gibt an, wie oft zu dx gesprungen werden soll

zur erläuterung unten das von mir erzeugte csv-File...

[attachment=10057]

im speziellen wäre für mich wichtig die zeilen nummeriert auszulesen, um den jump-befehl ausführen zu können. ich weiß aber bisher nicht wie das geht, bin auch erst seit kurzem am arbeiten mit lv...! dann wolte ich eine case-struktur erstellen, die je nach zeichen (setacceleration,setcurve,dx,jx) verschiedene befehle ausführt usw....

danke für eure ratschläge...


csv File lesen - toaran_ - 30.11.2007 11:01

Hallo

einfach das file mit "Read Lines from file" einlesen... da kommt ein 1D array raus... und dann mit splitt file die zeilen in einer for schleife auseinander nehmen...

[attachment=10080]

Toaran


csv File lesen - Lucki - 30.11.2007 13:50

Hier mal ein erster Vorschlag. Habe da noch keine Text-Zahl-Konvertierung vorgenommen. und sicherlich geht es auch einfacher..
[attachment=10084]

(VI LV 8.2)


csv File lesen - dasepa - 04.12.2007 14:22

hallo an alle...

erstmal danke für eure schnelle hilfe...!

@lucki: bin echt beeindruckt, wie schnell und gut du meinen beitrag in deinem programm umgesetzt hast :-)habe bei mir zwar inzwischen einiges anders gelöst, was auch aus meiner beschreibung nicht erkennbar/beschrieben war, habe aber viele gute ideen und ansätze aus deinem programm bekommen! danke!

inzwischen kann ich sowohl meinen funktionsgenerator als auch den motor mit den daten aus der csv-file ansteuern...!
ich habe jedoch um die einzelnen fälle (set, dataset,//,ju) zu unterscheiden einen caseselektor verwendet und dort dann jeweils die auszuführenden befehle
untergebracht.
hab euch mein programm jetzt einfach mal angehängt (der teil der die csv liest), vllt. könnt ihr es euch ja mal anschauen.

meine probleme sind im moment:
1. ich habe den jump befehl noch nicht realisiert. ich hatte mir vorgestellt, das ich schaue, bei welchem datensatz ich aktuell bin, und von dem den jump-wert abziehe (also z.B.: letzter dataset war:da17, jumpbefehl ist ju3 (also jumpto dataset 3), d.h. 17-3+1=15 (+1 für die jump-zeile)=> von i muss 15 abgezogen werden). leider kann ich die schleifen-iteration jedoch nur lesen, nicht schreiben...? außerdem ist diese variante nicht sehr elegant...! habe dazu das programm count angehängt, das ich auch hier im forum gefunden habe, das würde ich modifizieren und für den jump befehl mein "i" auf den errechneten wert setzen! habt ihr ideen, wie ich das anders/eleganter lösen könnte?

2. für den fall, das kein wert eingetragen wird tritt ein fehler auf, dabei sollte eigentlich der vorgängerwert verwendet werden. ich weiß aber noch gar nicht, wie das gehen soll. ich lese halt mit meinem block zahlenwerte ein und gebe im aber zwischen den strichpunkten keinen wert und er erwartet eine zahl und sagt dann, das das format nicht dem erwarteten entspricht :-(

das war es erstmal, ich freu mich auf weitere tipps :-)

liebe grüße, daniel

(VIs LV 8.2)