LabVIEWForum.de
Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - 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: Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen (/Thread-Bestimmte-Anzahl-Zeilen-aus-ASCII-Datei-einlesen)

Seiten: 1 2


Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - Guybrush - 08.02.2007 17:19

Hallo,

ich bin noch ziemlich neu bei LabVIEW und vielleicht habe ich auch gerade nur Tomaten auf den Augen, doch alle Suche nach einer hilfreichen Funktion hat mir nicht weitergeholfen, deswegen frage ich hier.

Zum Problem:

Ich habe eine ASCII-Datei mit Messdaten (Tab-getrennt), die ich auch ganz gut als Spreadsheet-File einlesen und verarbeiten kann. Nun enthält diese Datei auch noch Informationen über die Meßbedingungen. Diese sind am Ende der Datei als eine "Spalte" angegeben, werden aber beim Einlesen als Spreadsheet-File ignoriert, weil es sich um einen String handelt.

Nun habe ich in meinem LabVIEW-Einführungsbuch etwas über die Funktion "Zeilen aus Datei lesen" gelesen, mit der man eine festgelegte Anzahl von Zeilen aus einer Datei, beginnend bei einem festgelegten Offset auslesen kann. Diese Funktion würde mir weiterhelfen, denke ich zumindest, aber ich finde sie einfach nichtSad

Es gibt zwar die Funktion "Aus Textdatei lesen", aber die liest dann eben die gesamte Datei ein, was bedeuten würde, ich müsste nochmal im String nach den entsprechenden Abschnitt suchen lassen usw usf.

Gibt es da eine einfache schnelle Lösung? Und wenn nein, habt ihr evtl. eine Idee, wie man das Problem einigermaßen elegant lösen könnte?

Danke schonmal im Voraus, ich geh solange mal weiterprobierenWink


Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - A.Berndsen - 08.02.2007 18:26

Hallo Guybrush,

Du willst Zeilen aus der Datei lesen?
Kein Problem! Das VI "Aus Textdatei lesen" ist ok. Einfach mal rechten Mausklick auf das VI und im Kontextmenü "Zeilen lesen" auswählen.
Kannst Du mal eine Beispiel Textdatei posten. Ich kann mir das mit der Spalte am Ende der Datei nicht wirklich vorstellen.
' schrieb:... am Ende der Datei als eine "Spalte" angegeben, ...

Gruß
Andreas


Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - Guybrush - 08.02.2007 21:09

So, hab mal eine "abgespeckte" Version von so einer Datei hochgeladen. Auch nur als .txt, weil .asc durfte ich nicht. Aber ich denke das Wesentliche wird deutlichWink

Im ersten Teil stehen in den Zeilen die x-Werte (1. Spalte) und dann mit Tabs getrennt mehrere y-Werte (zugehörig zu einer Zeitskala, die direkt im File aber nicht mitgespeichert wird). Zum Ende dann die Setup-Daten (Leerzeichengetrennt über mehrere Zeilen, deswegen "eine Spalte"), aus denen man auch die Zeitskala berechnen kann (deswegen brauch ich die so dringend.

Leider bin ich gerade zu Hause und kann deinen Tip nicht ausprobieren, werde ich jedoch morgen gleich mal tun.

Vielen Dank schonmalSmile


Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - Y-P - 08.02.2007 21:44

Hallo,

ich hab' Dir was gebaut. Jetzt musst Du nur noch das Array, das Du erhalten hast, indizieren (index Array), um an die einzelnen Zeilen zu kommen.

Gruß Markus


Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - A.Berndsen - 09.02.2007 09:51

' schrieb:So, hab mal eine "abgespeckte" Version von so einer Datei hochgeladen. Auch nur als .txt, weil .asc durfte ich nicht. Aber ich denke das Wesentliche wird deutlichWink

Hallo Guybrush,

ich hab mir Dein File angesehen und weiß jetzt wie das gemeint war.
Im Anhang findes Du ein VI, mit dem ich Deine Beispieldatei eingelesen habe und den Dateiinhalt in Daten und Setup trenne.
Vielleicht hilft Dir das als Anregung.

Grüße
Andreas


Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - Guybrush - 12.02.2007 15:57

Hallo,

vielen Dank für Eure Hinweise und Beispiele. Leider war ich die letzten Tage sehr krank und hatte heute auf Arbeit nur wenig Zeit, sie auszuprobieren, doch scheint das Problem auf verschiedenen Wegen lösbar zu sein. Ich werde versuchen das nach bestem Wissen und Gewissen umzusetzen und dann das Ergebnis hier posten, ich bin sicher es gibt dann noch das eine oder andere zu verbessernWink

Bis dahin seid gewiss, dass ihr mir schon sehr helfen konntetSmile


Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - Y-P - 12.02.2007 22:24

Hallo Guybrush,

viel Spaß beim Probieren und gute Besserung.
Wenn Du noch Fragen hast, wenn Du das nach "bestem Wissen und Gewissen" (Big Grin) programmierst, dann frag' ruhig. Wink

Gruß Markus

PS: Ich finde es echt klasse, den Namen "Guybrush" wieder aufleben zu lassen. Es lebe Monkey Island!! Lol

' schrieb:Hallo,

vielen Dank für Eure Hinweise und Beispiele. Leider war ich die letzten Tage sehr krank und hatte heute auf Arbeit nur wenig Zeit, sie auszuprobieren, doch scheint das Problem auf verschiedenen Wegen lösbar zu sein. Ich werde versuchen das nach bestem Wissen und Gewissen umzusetzen und dann das Ergebnis hier posten, ich bin sicher es gibt dann noch das eine oder andere zu verbessernWink

Bis dahin seid gewiss, dass ihr mir schon sehr helfen konntetSmile



Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - Guybrush - 13.02.2007 16:46

' schrieb:Hallo Guybrush,

viel Spaß beim Probieren und gute Besserung.
Wenn Du noch Fragen hast, wenn Du das nach "bestem Wissen und Gewissen" (Big Grin) programmierst, dann frag' ruhig. Wink

Gruß Markus

DankeSmile

Soderle, bin dann erstmal so weit, dass ich die Daten so einlesen lassen konnte, wie ich wollte und auch die entsprechende Zeitachse schon berechnet habe. Auch die Darstellung mehrerer Spektren (im Datenfile finden sich insgesamt 75) ist mir gelungen, es werden 5 Spektren gezeigt, dazu wird vorher die Gesamtzahl der Spektren bestimmt, durch 4 (willkürlicher Wert im Moment) geteilt und dann also aus den "verbleibenden" Gesamtzahl/4 Spektren jedes Gesamtzahl/4/5-te-Spektrum dargestellt, angefangen beim ersten Spektrum. (Hat das jetzt jemand verstanden? glaube eher nicht, bei der konfusen Erklärung Rolleyes)

Hab das VI mal angehangen und auch noch ein richtiges Datenfile dazugepackt. Freue mich über alle Kommentare bezüglich Programmierlogik, Funktionsverwendung, Anordnung im Blockdiagramm usw usfWink

Zitat:PS: Ich finde es echt klasse, den Namen "Guybrush" wieder aufleben zu lassen. Es lebe Monkey Island!! Lol

Ja, da geht nix drüberWink


Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - Y-P - 13.02.2007 19:49

Jetzt fehlt bloß noch das SubVI "Extract Numbers.vi", dann ist es vollständig. Big Grin

Gruß Markus

' schrieb:DankeSmile

Soderle, bin dann erstmal so weit, dass ich die Daten so einlesen lassen konnte, wie ich wollte und auch die entsprechende Zeitachse schon berechnet habe. Auch die Darstellung mehrerer Spektren (im Datenfile finden sich insgesamt 75) ist mir gelungen, es werden 5 Spektren gezeigt, dazu wird vorher die Gesamtzahl der Spektren bestimmt, durch 4 (willkürlicher Wert im Moment) geteilt und dann also aus den "verbleibenden" Gesamtzahl/4 Spektren jedes Gesamtzahl/4/5-te-Spektrum dargestellt, angefangen beim ersten Spektrum. (Hat das jetzt jemand verstanden? glaube eher nicht, bei der konfusen Erklärung Rolleyes)

Hab das VI mal angehangen und auch noch ein richtiges Datenfile dazugepackt. Freue mich über alle Kommentare bezüglich Programmierlogik, Funktionsverwendung, Anordnung im Blockdiagramm usw usfWink
Ja, da geht nix drüberWink



Bestimmte Anzahl Zeilen aus ASCII-Datei einlesen - Guybrush - 14.02.2007 09:38

' schrieb:Jetzt fehlt bloß noch das SubVI "Extract Numbers.vi", dann ist es vollständig. Big Grin

Gruß Markus

Das gibts im LabVIEW-Ordner unter examples/general/strings.lbb oder jetzt auch im Anhang dieses PostsWink