INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Spalte aus *.txt lesen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

06.05.2013, 10:58
Beitrag #1

Neska Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: May 2013

12.0
2010
DE



Spalte aus *.txt lesen
Hallo,

ich möchte gerne eine einzelne Spalte von Tab-getrennten Werten aus einer *.txt lesen.
   
Bisher habe ich es nur so lösen können, dass ich alle Werte einer Zeile lese, bis ich zur gewünschten Spalte gelangt bin.
   
   
Das scheint mir bei Textdokumenten mit mehreren GB Datenvolumen nicht optimal.

Weiß jemand eine schlauere Lösung?
Kann man ein Textdokument vielleicht vorher, wie bei einer Matrix, transponieren.
Bitte beachtet, dass es mir nicht möglich ist, das Textdokument in einem Array zwischenzuspeichern, da es sehr große Dimensionen annimmt.

LG
Neska


Angehängte Datei(en)
12.0 .vi  Spalte_lesen.vi (Größe: 10,03 KB / Downloads: 281)

0.0 .txt  Ergebnisdatei.txt (Größe: 126 Bytes / Downloads: 226)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.05.2013, 11:17
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Spalte aus *.txt lesen
(06.05.2013 10:58 )Neska schrieb:  Kann man ein Textdokument vielleicht vorher, wie bei einer Matrix, transponieren.
Nein!

Somit bleibt dir nur deine Lösung:
(06.05.2013 10:58 )Neska schrieb:  Bisher habe ich es nur so lösen können, dass ich alle Werte einer Zeile lese, bis ich zur gewünschten Spalte gelangt bin.

Das scheint mir bei Textdokumenten mit mehreren GB Datenvolumen nicht optimal.
Das könnte man natürlich etwas optimieren, z.B. immer 10/100/1000 Zeilen auf einen Schwung einlesen ("Read from Text File" mit der Option "Read Lines" aktiv), dann mit SpreadsheetString to Array in Zahlen konvertieren und sich die entsprechende Spalte rausholen. Der Rest wird verworfen.

(06.05.2013 10:58 )Neska schrieb:  Weiß jemand eine schlauere Lösung?
Wenn es wirklich um so gigantische Datenmengen geht, dann auf ein anderes Datenformat umsteigen, z.B. tdms oder eine Datenbank!

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2013, 13:20 (Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2013 13:45 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Spalte aus *.txt lesen
(06.05.2013 10:58 )Neska schrieb:  Das scheint mir bei Textdokumenten mit mehreren GB Datenvolumen nicht optimal.
Weiß jemand eine schlauere Lösung?
Man darf sich das zeilenweise Lesen aber nicht so vorstellen, dass da für jede Zeile ein Lesevorgang auf der Festplatte stattfindet. Sowohl auf der Festplatte als auch im Betriebssystem hat man da sehr große Caches. Das Lesen aller Zeilen einzeln kann damit fast genau so schnell sein wie das Lesen der ganzen Datei auf einmal. Hast Du es denn wirklich mal für eine sehr große Datei probiert? (Das häppchenweise Lesen, welches Jens als Option vorschlägt - das ist genau das, was das Betriebssystem schon von sich aus macht).
Schlauer allerdings könnte ich mir das Herausklauben der Spalte aus der Zeile vorstellen. Ich würde mir von dieser anderen Methode einen Geschwindigkeitsvorteil versprechen:
   
Deine txt-Datei endet mit einer Leerzeile. Das erfordert noch eine Modifikation, damit man nicht als letzten Wert eine zusätzliche Null im Array hat.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2013, 16:28
Beitrag #4

BerndDasBrot Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 128
Registriert seit: Feb 2008

8.2.1, 2012, 2017, 2020
2007
EN

7206
Schweiz
RE: Spalte aus *.txt lesen
Hallo
Ich habe noch einen Vorschlag mit "Read from Spreadsheet file"

Gruss, BDB


Angehängte Datei(en)
11.0 .vi  Untitled 1.vi (Größe: 11,46 KB / Downloads: 404)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Beispiel.txt Datei auslesen - "2.Spalte" - LV2010 Peter Schulze 3 5.949 06.09.2011 07:55
Letzter Beitrag: Lucki
  vom array bzw. textdatei mit 1 Spalte Daten zeitlich versetzt weiterleiten Flitzer09 2 4.773 29.01.2009 09:13
Letzter Beitrag: Flitzer09
  Datei eine Spalte hinzufügen cnongs 4 5.842 02.12.2008 13:33
Letzter Beitrag: cnongs
  Array Spalte für Spalte in txt Datei speichern OFET 5 7.832 31.07.2008 17:18
Letzter Beitrag: OFET
  Spalte "Comment" in .tdms/.lvm Datei loswerden Yopp Qax 0 3.683 20.03.2008 14:28
Letzter Beitrag: Yopp Qax
  Spalte mit Timestamps auslesen und darstellen eg 8 6.621 10.12.2007 14:27
Letzter Beitrag: MichaH

Gehe zu: