LabVIEWForum.de
.txt Datei durchsuchen - 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: .txt Datei durchsuchen (/Thread-txt-Datei-durchsuchen)

Seiten: 1 2 3 4 5 6


RE: .txt Datei durchsuchen - M@rRy - 15.09.2011 10:12

Hier nochmal eine etwas schönere Version mit "Open" anstelle dem Read und einer Zahl. So sollte es eigentlich gehen.

Edit: Wenn du beim ScanFormat auch %s angibst, aber in Wirklichkeit ein double lesen möchtest geht das auch nicht, wenn dir LV dort nicht bereits beim verdrahten einen Fehler anzeigt kommt er beim ausführen. Also mach dir auch darüber ruhig ein paar Gedanken bevor du dich ans verkabeln setzt.


RE: .txt Datei durchsuchen - lambda89 - 15.09.2011 11:46

Auch mit dem neuen Programm von dir, bekomme ich die Fehlermeldung bei meiner Datei...

Was mich "nervt", dass man immer angeben muss was für einen Inhalt man "erwartet".
Kann er nicht einfach alles was in der Datei ist erstmal als String nehmen?
Also auch die Zahlen?


RE: .txt Datei durchsuchen - M@rRy - 15.09.2011 11:59

(15.09.2011 11:46 )lambda89 schrieb:  Auch mit dem neuen Programm von dir, bekomme ich die Fehlermeldung bei meiner Datei...

Was mich "nervt", dass man immer angeben muss was für einen Inhalt man "erwartet".
Kann er nicht einfach alles was in der Datei ist erstmal als String nehmen?
Also auch die Zahlen?

Und dann? willst du aus einer elend langen Zeichenkette die ganzen Zahlen raussuchen?

Also das Problem ist, das er im prinzip erwartet das dein gesuchtes Objekt als erstes in der txt steht. Kannste ja mal ausprobieren, wenn du dein NeueTestNummer in die erste Zeile schreibst wird es keinen Fehler geben.

Vielleicht schaust du dir das mit den ini Dateien doch nochmal an, du scheinst ja eh aus einer beliebigen Datei eine txt machen zu wollen, dann kannste da auch eine ini reinsetzen und dort nach einem Key suchen. Vielleicht gestaltet sich das als etwas einfacher.

Klick mich!

Edit: Falls nötig musst du dann aber noch eine section, ob man eine ini rein ohne section erstellen kann hab ich noch nie ausprobiert.


RE: .txt Datei durchsuchen - GerdW - 15.09.2011 12:03

Hallo lambda,

Zitat:Was mich "nervt", dass man immer angeben muss was für einen Inhalt man "erwartet".
So arbeitet diese Funktion nun einmal. Wenn du in C "printf" schreibst, ärgerst du dich dann auch über dessen Funktionsweise?

Zitat:Kann er nicht einfach alles was in der Datei ist erstmal als String nehmen?
Mit der richtigen Funktion schon: ReadTextFile...

Was kann LV dafür, dass deine Vorstellungen mit der Programmierpraxis kollidieren?

Schon mal erfolgte Ratschläge:
- INI-Dateien nutzen
- Textdatei als String einlesen und selbst parsen


RE: .txt Datei durchsuchen - lambda89 - 15.09.2011 12:10

Danke, werd mir gleich mal durchlesen.

Im Prinzip gehts immer noch um das Thema .dat oder .ept zu .std (STDF-Format).

Da ich nun einigermaßen gute Dokumente zu geschickt bekommen habe, wie das im Endeffekt genau funktioniert, wollte ich mich nun damit beschäftigen, wie ich diese .dat oder .ept Files am besten in LV reinlade um dann die entsprechenden Werte aus den Files (sei es das Datum vom Test oder eine Kennung des Objekts) in STDF umzuwandeln.

Das Problem ist, dass so eine .dat/.ept Datei wie folgt aufgebaut ist:

Zitat:# ################################################################################​#########################
# >>>>>>>>>>>>>>>>>>> GENERAL INFORMATION
# ################################################################################​#########################
#
#DATE = 12-08-2547
#START_TIME = 07:02:13
#STOP_TIME = 09:02:44
#SOFTWARE_VERSION = *********
#OPERATOR_NAME = Mustermann
#PROBER_TYPE = ABC2
#PROBECARD = V5.10393
#TEMPERATURE = 29393
#RECIPE = "langer Dateipfad zu einer ini Datei"

Und das ist nur ein kleiner Teil.
Sozusagen der erste Teil der "Einleitung"

Mein Vorhaben war es dann, immer abzugleichen.
Nach Datum zu suchen, das ins STDF zu schreiben.
Nächster Durchlauf nach Start_Time und ins STDF schreiben und so weiter...
Nach meiner Einschätzung ist das verdammt viel Arbeit, aber mir fällt keine andere Methode ein.


RE: .txt Datei durchsuchen - GerdW - 15.09.2011 12:12

Hallo lambda,

nochmal: Datei als String einlesen, String parsen...
(Alles als subVI(s) verpacken - beliebig oft wiederverwenden!)


RE: .txt Datei durchsuchen - lambda89 - 19.09.2011 13:51

Es klappt trotzdem nur, wenn die gesuchte Zeile direkt am Anfang der Datei steht...

[attachment=35986]


RE: .txt Datei durchsuchen - GerdW - 19.09.2011 14:07

Hallo lambda,

ich schrieb "parsen"...

Die String-Palette bietet da mannigfaltige Möglichkeiten: Suchen mit und ohne RegEX etc...
In deinem Beispiel: String einlesen, durchsuchen nach "Neue Testnummer:", Auswerten der Zahl danach...
oder doch mal über INI-Files nachdenken, da übernimmt LV das Parsen für dich!


RE: .txt Datei durchsuchen - BeFu - 20.09.2011 08:43

Hallo Lambda,

im beigefügten Beispiel versuche ich Deine Frage aufzugreifen und mit den von GerdW genannten LabVIEW-STRING-Functions nach einer gefragten Zeichenkette "NTNr" zu suchen.
Die Daten sind zeilenweise in der ASCII-Datei "protokoll.txt" gespeichert; darin sind die Spalten durch TAB getrennt. Diese CSV-Datei wird komplett in das STRING-Array >Text< eingelesen. Dieses Array wird mittels "Spreadsheet String to Array" in ein zweidimensionales STRING-Array >Array< gewandelt. In den verschachtelten FOR-Schleifen sucht "Match Pattern" nach "NTNr". Falls "NTNr" gefunden, wird "NTNr" samt dem folgenden Messwert in >Array3< (>Array2<) geschrieben. Abschließend wird >Array3< mit den gefundenen Einträgen in "protokoll_e.txt" gespeichert.

Ich hoffe, mein Beispiel hilft Dir.

Schöne Grüße,

BeFu


RE: .txt Datei durchsuchen - M@rRy - 20.09.2011 09:11

Und genau sowas bleibt dir bei der INI erspart!

Zu welchem Entschluss biste denn nun gekommen?