LabVIEWForum.de - Einzelne Werte aus csv lesen

LabVIEWForum.de

Normale Version: Einzelne Werte aus csv lesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.

lab_andy

Hi,

ich das Problem, dass ich aus einem ca. 100 MB großen .csv-File (Messdaten) anschließend einzelne Werte zur Weiterberechnung auslesen muss und das nicht so einfach geht (RAM zu klein, keine Erw. möglich).

Ich habe schon alles probiert, aber leider keine Option gefunden, in der ich z.B. eine Zeile an der Stelle X auslesen kann. Natürlich könnte ich alle Zeilen bis dorthin einlesen (soweit das der Speicher noch
zulässt) und alle überflüssigen aus dem Array löschen. Wie schon angesprochen wird das aufgrund des Speicherproblems nicht funktionieren und zudem extrem die Berechnungszeiten verlängern.
Da die Berechnungen bestenfalls schon eine Stunde in Anspruch nehmen können, ist das leider nicht tragbar.

Eine .csv ist ja eigentlich auch nur ein String der durch ein Trennzeichen formatiert ist. Die entstehenden Zeilen entstehen nur durch den Zeilenvorschub.

Daher meine Frage, irgendwie direkt an eine Zeile bzw. ein bekanntes Zeilenvorschubzeichen zu springen. Weiter könnte man evtl. jede Zeile einlesen bis die gewünschte erreicht ist und gleichzeitig den gerade eingelesenen String wieder im Speicher freigeben. Dabei würde leider auch keine Zeit gespart werden.

Ich hoffe ihr habt eine Lösung für mich 2hands

Danke
Die Lösung für Dein Problem gibt es, sie ist nur getarnt:
Das VI "Aus Textdatei lesen" verwenden. Dort drin ist das VI versteckt, welches Du suchst: Mit rechter Maustaste die Option "Zeilen lesen" aktivieren. Das VI verändert daraufhin auch sein Aussehen.
Versuch Dich erst mal damit. Wenn es Fragen gibt, melde Dich wieder.

lab_andy

Hi Lucki,

danke schonmal für deine Antwort. Leider geht das so glaub ich nicht, da in dem VI auch nur eine Anzahl angegeben wird und kein vertikaler (Zeilen) Offset. Zudem kann man das VI "Dateiposition festlegen"
nicht benutzen. Oder sehe ich das evtl. falsch?

Danke & Viele Grüße
Das siehst du richtig, "Dateiposition festlegen" in einer csv-Datei, das macht nur in ganz extremen Ausnahmefällen Sinn. Es müsste dann JEDER Datensatz immer genau dieselbe Anzahl an Bytes enthalten. Nur dann könntest du vorab den Offset für einen bestimmten Zeilenanfang zuverlässig berechnen.
Ansonsten bleibt dir bei einer csv-Datei wirklich nur das zeilenweise Einlesen (vgl. Beitrag von Lucki).

Gruß, Jens
Referenz-URLs