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 

Daten blockweise aus .txt Datei extrahieren



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!

23.08.2012, 14:06
Beitrag #1

Otti Offline
LVF-Grünschnabel
*


Beiträge: 36
Registriert seit: Apr 2006

2012
2004
DE

04275
Deutschland
Daten blockweise aus .txt Datei extrahieren
Hallo LabVIEW Freunde,

ich habe folgendes Problem zu dem mir jeglicher Ansatz fehlt.
Ich benutze die Studentenversion 8.

Ich habe eine .txt Datei in der 7 Spalten sind. In diesen 7 Spalten sind Messwerte von 6 Kanälen abgelegt. Jede Zeile bedeutet ein Messwert alle 200ms. Die Messwerte oder Kanäle sind durch TAB voneinander getrennt. In der 7. Spalte ist eine Kommentarspalte in der unregelmäßig Kommentare auftauchen welche mit # beginnen.
Die Schwierigkeit besteht nun in folgendem.
Ich möchte gerne die Textdatei auslesen und immer wenn ein Kommentar bzw. ein # Zeichen in der Spalte 7 erscheint sollen 50 Zeilen vor dieser Zeile mit dem # Zeichen und 100 Zeilen nach dieser Zeile alle 7 Spalten in eine Tabelle oder Array geschrieben werden, so dass ich mit diesen dann weiter Rechnen oder ähnliches kann.
Sprich ich möchte eine Datenextraktion blockweise durchführen lassen.
Kann mir jemand bei diesem Problem eine Hilfestellung geben? Angel_not
Ich würde mich sehr über eure Hilfe freuen,

Viele Grüße und besten Dank im Voraus,
thomas

PS: im Anhang ein Beispiel der von mir verwendeten Daten in der .txt Datei.


Angehängte Datei(en)
0.0 .txt  Beispiel.txt (Größe: 625,84 KB / Downloads: 715)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.08.2012, 14:33 (Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2012 14:33 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten blockweise aus .txt Datei extrahieren
Hallo Otti,

Vorgehensweise:
- die Datei mittels ReadSpreadsheetFile (als 2D-Stringarray) einlesen
- in der 7. Spalte nach Kommentaren suchen
- mit den gefundenen Indizes rechnen (x-50) und dann aus dem Gesamtarray mittels ArraySubset ab Zeile "x-50" 150 Zeilen "ausschneiden"

Probier das mal selbst. Wenn du damit dann Probleme hast, hängst du dein VI an und wir schauen drüber... Smile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.08.2012, 20:39
Beitrag #3

Otti Offline
LVF-Grünschnabel
*


Beiträge: 36
Registriert seit: Apr 2006

2012
2004
DE

04275
Deutschland
RE: Daten blockweise aus .txt Datei extrahieren
vielen Dank für die schnelle hilfe, ich werde das versuchen umzusetzen und melde dann die fortschritte Big Grin

nochmals besten dank und schönen abend!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.08.2012, 22:31
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Daten blockweise aus .txt Datei extrahieren
Offtopic2
Ist die Shift-Taste deiner Tastatur defekt? Dann bitte reparieren.
Beiträge im SMS-Stil (alles klein geschrieben) sind im LVF ungern gesehen (vgl. LVF-Regeln).

Danke, 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
24.08.2012, 13:16 (Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2012 18:15 von Lucki.)
Beitrag #5

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: Daten blockweise aus .txt Datei extrahieren
Wenn die Datei sehr groß ist, dann sollte man sich überlegen, ob man die ganze Datei ins RAM lädt. Die Alternative wäre, mittels zeilenweisem Einlesen nach der Zeile mit Kommentar zu suchen. Das ist aber insgesamt etwas aufwändiger als die von Gerd vorgeschlagene Lösung.
Hier eine Lösung, bei der allerdings nur die erste Fundstelle ausgewertet wird.

       


8.0 .vi  blockweise.vi (Größe: 15,57 KB / Downloads: 183)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2012, 14:37
Beitrag #6

Otti Offline
LVF-Grünschnabel
*


Beiträge: 36
Registriert seit: Apr 2006

2012
2004
DE

04275
Deutschland
RE: Daten blockweise aus .txt Datei extrahieren
Lieber Lucki:
Danke für deinen Lösungsvorschlag. Ich werde gleich mal versuchen ob ich damit zurecht komme.


Lieber Gerd:
Ich habe heute versucht deine Lösung umzusetzen. Leider ist es mir nicht ganz gelungen. Ich habe im Angang einmal das bisgerige VI eingefügt. Vielleicht kannst du, oder auch Lucki einen Blick drauf werfen.
Die aktuelle Lösung ist eine Kombination aus dem VI "Read Text" und "Suchen in einem 2D Array"(dieses vi habe ich von der NI Seite).
Wenn ich nach # Suche oder auch nach anderen Zeichen, egal ob Zahl oder Buchstabe kommt immer kein Ergebnis (-1). Was mache ich falsch?

So lange ich da nicht weiter komme, habe ich das mit dem Ausschneiden noch ganicht anfangen können...Undecided

Liebe Grüße und ich freue mich sehr über eure Hilfsbereitschaft.
otti


Angehängte Datei(en)
8.0 .vi  Read from Text File-otti.vi (Größe: 33,22 KB / Downloads: 155)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.08.2012, 15:22
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten blockweise aus .txt Datei extrahieren
Hallo Otti,

mal ein Vorschlag:
   

- Das ReadFromSpreadsheetFile kann in deiner alten LV-Version nur Zahlenarrays ausgeben, Stringarrays kamen erst später hinzu, nicht wundern.
- Die Such-Schleife schaut momentan einfach nach nicht-leeren Feldern der 7.Spalte und packt deren Indizes in ein Array. Schau mal, wie du damit weitermachen kannst...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2012, 18:23 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2012 08:51 von Lucki.)
Beitrag #8

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: Daten blockweise aus .txt Datei extrahieren
Mein obiger Vorschlag funktioniert nicht mit LV8, weil es da die Queue-Funktion "verlustbehaftet einfügen" noch nicht gab. Habe das geändert und das Vi oben angehängt.
Es gibt ja in der Datei viele Fundstellen mit # in der Zeile. Was soll denn da insgesamt geschehen? Sollen entsprechend viele Subdateien angelegt werden oder wie soll das dann funktionieren?

Hier noch Variante zum Vorschlag nach Gerd:
   

8.0 .vi  Read from Text File-otti-1.vi (Größe: 16,08 KB / Downloads: 158)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.08.2012, 12:15
Beitrag #9

Otti Offline
LVF-Grünschnabel
*


Beiträge: 36
Registriert seit: Apr 2006

2012
2004
DE

04275
Deutschland
RE: Daten blockweise aus .txt Datei extrahieren
Hallo Gerd und Lucki,

das mit dem String und ReadFromSpreadsheetFile habe ich dann germerkt. Dachte erst das muss doch auch mit String gehen, aber ist klar wenn es das in Version 8 noch nicht gab.

Ich habe jetzt, dank euer UnterstüzungSmile, eine Lösung hin bekommen mit der ich erstmal weiter machen kann. Schaut doch bitte einmal ob ihr das auch so gemacht hättet.

Der Sinn soll folgender sein.
Ich messe an 6 Punkten Kontrationskräfte über einen Zeitraum von ca. 8h fortlaufend. Jede Spalte stellt dabei einen Messkanal dar. Der Abstand zwischen den Messwerten beträgt 200ms. In während den 8h führe ich verschiedene Tests durch welche ich druch Kommentare (das ist immer das nach dem # Zeichen) kennzeichne um sie später wieder zu finden.
In der Auswertung soll es jetzt so weiter gehen. Ursprünglich sollte es so sein, dass das Progamm die Blöcke nach der Fundstelle ausschneidet und entweder in eine Tabelle oder wieder in eine Text Datei schreibt und ich diese dann ins Excel lesen kann.
Mittlerweile denke ich, vielleicht kann ich aber auch das was ich im Excel mit den Messwerten vor hatte auch im LabVIEW machen. Es sollen bspw. die Daten vor und nach dem Kommentar bewertet werden, wie zB. Max und Min und dann könnte es mir die Messwerte noch in einer Grafik darstellen.

Im Anhang erstmal der derzeitige Stand.

In dieser Woche bekomme ich LabVIEW 11 und DIAdem Smile

Nochmals vielen Dank für euer Hilfe, ich würde erstmal weiter basteln und mich gern ggf. noch mal bei Fragen melden...

Liebe Grüße,
Otti


Angehängte Datei(en) Thumbnail(s)
       

8.0 .vi  Read from Text File-otti-2.vi (Größe: 30,49 KB / Downloads: 148)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  DI Daten in Datei schreiben puuk! 10 11.786 15.12.2015 13:08
Letzter Beitrag: GerdW
  Sinus-Signalverlaufsdiagramm Daten in Text-Datei Chicooo94 36 19.407 05.07.2015 11:50
Letzter Beitrag: Chicooo94
  Daten verschiedener Typen in Datei loggen ostone 9 6.608 11.05.2015 11:56
Letzter Beitrag: GerdW
  Daten aus *.dat Datei einlesen klavierspieler 5 7.799 30.09.2014 08:20
Letzter Beitrag: klavierspieler
  Bestimmte Daten aus csv Datei in Array schreiben Serial 23 19.762 26.03.2014 07:22
Letzter Beitrag: Serial
  aus txt-Datei geladene Daten im Frontpanel anzeigen SGKIZO 4 3.762 24.08.2012 11:51
Letzter Beitrag: NWOmason

Gehe zu: