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!
29.06.2006, 07:07 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2006 07:08 von thomhof0.)
Man kann die Dateigröße ermittlen (File IO >> Fortgeschritten), aber um die Anzahl Zeilen in einer Datei (ich schätze mal *.txt ?) muss glaub ich eh (im Hintergrund) die Datei abgegrast werden. Da kann man die Datei auch komplett einlesen, sich z.B. mit den Stringfunktionen die letzten CRLF (Carriage Return Line Feed - Zeilenumbrüche) suchen und den Rest verwerfen. Oder bei Zahlen: Read from Spreadsheet (Aus Tabellenkalkulationsdatei lesen) in ein Array und mit den Arrayfunktionen die gewünschten Zeilen extrahieren.
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
29.06.2006, 07:58 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2006 07:59 von thomhof0.)
Ich speichere sie als txt ab, importiere sie aber später in excell, benötige aber vorher in LabVIEW die letzten 10 Zeilen. Datei ist leider immer unterschiedlich groß.
hab grad mal mit nem Kollegen "konferiert"...vermutlich wird das nicht funktionieren...das geht nur bei ner Binärdatei, dort kann man an verschiedene Positionen springen und ne gewisse Länge lesen!
Bei txt-Dateien sind die Zeilen aber meist unterschiedlich lang, darum muss man auf jeden Fall nach dem Zeilentrennzeichen (z.B. EOL) suchen!
Kannst du nicht deine Datenspeicherung anders organisieren? Z.B. mehrere Dateien schreiben, die nur vielleicht 500kByte groß sind?
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Danke Achim!
Die Datei wird von einer einzigen Schleife erstellt, die sich ungefähr 16000 mal wiederholt, bis dann der Sollzustand eintritt. Ich werde dann mal Versuchen die ganze Datei zu laden, dann den String umdrehen und so dann die ersten Zeilen auslesen. Falls du eine bessere Lösung hast, kannst du sie mir gerne mitteilen.
MfG
Thomas
29.06.2006, 09:21 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2006 09:22 von Lucki.)
Wenn die Datei nicht so riesengroß ist, daß LabVIEW beim Einlesen aussteigt, dann würde ich die Datei als Ganzes einlesen, und zwar als Stringvektor, und davon die letzten 10 Elemente auswählen. Wenn Dich die Vektordarstellung stört, kannt Du den Vektor natürlich auch wieder in normalen Text konvertieren. So ungefähr wie hier:
ich hab mir aus den Zeilen, die thomhof0 gepostet hat, spaßeshalber mal ne ca. 20MB-Datei gebaut...LV hat so ca. 5 Minuten gebraucht, um das in ein Stringfeld zu lesen...uiuiuiuiuiui...diesen String dann auch nocht zu drehen...LV macht schon Mücken, wenn ich nur das Anzeigeelement, in dem der eingelesene String liegt, auf dem FP verschieben will...
Ich würde hier auf jeden Fall mehrere Dateien schreiben (wenn > x, dann neuer Index (Datei_1, Datei_2, Datei_n), oder eben Binärdateien, die brauchen auch nicht so viel Platz!
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
29.06.2006, 10:31 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2006 10:37 von Lucki.)
Hier noch ein Vi, welches das Zwischenspeichern der ganzen Datei vermeidet. Es wird nur immer ein Zeile eingelesen, und das Schiebregister hat am zum Schluß die letzten 10 Zeilen gespeichert. Probiere das mal aus. Falls das Schiebregister zu langsam ist, besteht die Möglichkeit, das ohne Schiebregister, aber in zwei Durchläufen, zu machen. Beim ersten Mal wird nur die Anzahl der Zeilen festgestellt, im zweiten Durchlauf werden die letzten 10 Zeilen gelesen.
' schrieb:Ich speichere sie als txt ab, importiere sie aber später in excell, benötige aber vorher in LabVIEW die letzten 10 Zeilen. Datei ist leider immer unterschiedlich groß.
Datei ist ca. 6 MB groß (über 16000 Zeilen), deswegen wollte ich sie nicht ganz laden.
Hallo Thomas,
kannst du die Datei mit "Aus Tabellenkalkulationsdatei lesen" öffnen? Das sollte eigentlich gehen. Wenn ja, musst du nur noch die Array-Größe ermitteln und die letzten zehn Zeilen mit "Teilarray" rausholen.
Der Rest ist dann wohl klar.