LabVIEWForum.de
fread Analogon in LabVIEW - 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: fread Analogon in LabVIEW (/Thread-fread-Analogon-in-LabVIEW)



fread Analogon in LabVIEW - oli2007 - 01.09.2007 07:11

Hallo zusammen,

die Beschreibung sagt es eigentlich schon. Ich möchte eine (binäre) Datei (die im Header stellenweise auch Strings enthält) auslesen. Und zwar unter Verwendung von refnum und nicht eine vorher festgelegte Anzahl von Zeichen, sondern (eben so wie fread in C auch) bis zum nächsten NewLine Character (dabei weiss ich eine maximale Anzahl von Zeichen, die zu lesen notwendig ist). Ideal wäre, wenn dann refnum hinterher auch noch an die richtige Stelle (eben nach dem ausgelesnen String) verweist... Gibt es so etwas in LabVIEW standardmässig?

Das Problem der Datei ist die Größe (viele Hundert Dateien von jeweils ~50-100 MB), daher würde ich wirklich ungern erst die ganze Datei auslesen und dann den resultierenden String analysieren...


Grüße
Oli


fread Analogon in LabVIEW - jg - 01.09.2007 15:59

Hallo, Oli,

und wo ist da dein Problem? Die File-Refnum "steht" nach einem Lesevorgang immer genau an der Stelle, wo du das Lesen aufgehört hast.

Und wenn du in deiner Binär-Datei erst mal ein paar normale ASCII-Zeilen hast, dann lies die doch einfach per "Read from Text File" im Zeilen-Modus aus.

[attachment=8412]

MfG, Jens

P.S.: Verstehe übrigens deinen Vergleich mit fread nicht ganz. Wenn ich danach in Google suche, dann macht diese C-Funktion genau das, was "Read from Binary File" in LabVIEW macht. Aber liest doch nicht bis zum nächsten NewlineHmm


fread Analogon in LabVIEW - oli2007 - 02.09.2007 01:43

' schrieb:Und wenn du in deiner Binär-Datei erst mal ein paar normale ASCII-Zeilen hast, dann lies die doch einfach per "Read from Text File" im Zeilen-Modus aus.
P.S.: Verstehe übrigens deinen Vergleich mit fread nicht ganz. Wenn ich danach in Google suche, dann macht diese C-Funktion genau das, was "Read from Binary File" in LabVIEW macht. Aber liest doch nicht bis zum nächsten NewlineHmm

Hallo Jens,

vielen Dank, ich hab mal wieder den Wald vor lauter Bäumen nicht gesehen...
Dein Vorschlag ist perfekt, aber Funktionen die man erst mit einem Rechtsklick auf das Icon zum Leben erwecken muss, bleiben mir immer noch regelmässig verborgen, weil ich einfach nicht dran denke...Wink
Ich hatte so etwas von der Art "Scan from file" mit einem Formatstring "%[^n]n" versucht. Das zweite n soll dabei dazu führen, dass das Newline mit ausgelesen wird, irgendwie wollte LabVIEW aber nicht so, wie ich..

fread liest übrigens standardmässig wirklich nur eine Anzahl Zeichen. Wenn allerdings vor erreichen dieser Anzahl bereits ein n eingelesen wird, hört fread dann doch auf weiterzulesen.

Grüße aus dem sonnigen Kalifornien
Oli


fread Analogon in LabVIEW - oli2007 - 03.09.2007 20:22

' schrieb:fread liest übrigens standardmässig wirklich nur eine Anzahl Zeichen. Wenn allerdings vor erreichen dieser Anzahl bereits ein n eingelesen wird, hört fread dann doch auf weiterzulesen.
Noch ein kleiner Nachtrag für diejenigen, die es interessiert: fread hört doch nur am eof auf zu lesen, newlines werden also ganz normales Zeichen eingelesen. Das beschriebene Verhalten trifft vielmehr auf fgets zu...


fread Analogon in LabVIEW - rolfk - 05.09.2007 15:36

' schrieb:Noch ein kleiner Nachtrag für diejenigen, die es interessiert: fread hört doch nur am eof auf zu lesen, newlines werden also ganz normales Zeichen eingelesen. Das beschriebene Verhalten trifft vielmehr auf fgets zu...

Danke! Dachte schon ich werde alt und senil.

Rolf Kalbermatter