In Textdatei schreiben - 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: In Textdatei schreiben (/Thread-In-Textdatei-schreiben--24870) |
In Textdatei schreiben - Herby07 - 16.10.2013 16:26 Hallo, ich versuche seit einiger Zeit Daten in eine Textdatei zu schreiben und zwar mit der Funktion: ´In Textdatei schreiben´. Laut Beschreibung sollen die Daten dabei zeilenweise abgelegt werden. Wenn ich mir die Textdatei aber anschaue, werden die Daten alle hintereinander abgelegt, so daß später das zeilenweise Auslesen der Daten nicht funktioniert. Wie stellt man das richtig ein ? Vielen Dank Herby RE: In Textdatei schreiben - jg - 16.10.2013 16:33 Das mglw. Einfachste: Füge selber an jeden String ein "Newline" an. Gruß, Jens RE: In Textdatei schreiben - Herby07 - 16.10.2013 16:59 Hallo Jens, das habe ich versucht mit \n aber dann wird trotzdem alles hintereinander geschrieben und das \n erscheint auch unverändert in der Datei. Herby RE: In Textdatei schreiben - Herby07 - 16.10.2013 17:42 Hallo, ich habe eine Lösung meines Problems gefunden: wenn ich meinen Messwert (als String) mit der ´Zeilenende-Konstanten´ verknüpfe, funktioniert es: die Messwerte werden wirklich untereinander in die Datei geschrieben. Nur : wie bekommen ich heraus, was die Zeilenende-Konstante unter LV eigentlich ist ? Ich habe als Zeilenende ausprobiert: \CR\LF und \cr\lf und \0D\0a, aber nichts hat funktioniert. Beim Einsatz einer Sonde wird mir bei der Zeilenende-Konstanten auch nichts angezeigt. Weis jemand, was die Zeilenende-Konstante (bei Windows) ist ? Weiterhin habe ich wohl Probleme mit der Interpretation der LV-Hilfe zur Funktion ´In Textdatei schreiben´. Dort steht: "Schreibt einen String oder ein Array aus Strings zeilenweise in eine Datei." Also bin ich davon ausgegangen: wenn ich 10 einzelne Strings nacheinander schreibe, stehen diese in der Textdatei schön zeilenweise untereinander. Aber das klappt eben nicht. Herby RE: In Textdatei schreiben - GerdW - 16.10.2013 20:44 Hallo Herby, Zitat:Nur : wie bekommen ich heraus, was die Zeilenende-Konstante unter LV eigentlich ist ?Die gibt es in der String-Palette... Zitat:Weis jemand, was die Zeilenende-Konstante (bei Windows) ist ?Das steht in der Kontexthilfe zum EOL - oder bei Wikipedia... Zitat:Ich habe als Zeilenende ausprobiert: \CR\LF und \cr\lf und \0D\0a, aber nichts hat funktioniert.Wie hast du die Stringanzeige konfiguriert, Normalmodus oder \-Code? Hast du dir mal die Kontexthilfe dazu zu Gemüte geführt? Auch da steht das Einfügen von \r, \n etc. beschrieben (hinterm Link zu "Backslash-Code")... Zitat:Weiterhin habe ich wohl Probleme mit der Interpretation der LV-Hilfe zur Funktion ´In Textdatei schreiben´. Dort steht:Die Funktion schreibt deine Strings in die Textdatei, ohne sie zu ändern (wer will das schon). Wenn du kein Zeilenende schreibst, gibt es auch keines in der Datei. Das "zeilenweise" gilt für String-Arrays, wie man in der Kontexthilfe (hier, unter "Details")nachlesen kann... Da kann man nur sagen: RE: In Textdatei schreiben - Herby07 - 17.10.2013 06:25 Hallo Gerd, vielen Dank für Deine Antwort. Ich habe durchaus kein RTMF-Problem, nur manchmal einige Interpretations-Probleme bei LV (worüber wir ja schon öfters diskutiert haben). In diesem Fall: Die unterschiedlichen Stringdarstellungsarten sind mir durchaus bekannt, nur wenn ich dann in der LV-Hilfe lese (wie auch in fast allen Lehrbüchern zu LV): ‘\’-Code-Anzeige: Zeigt alle nicht darstellbaren Zeichen als Escape-Sequenzen an. dann geh ich ganz einfach davon aus, daß es sich NUR um die Darstellungsart des Strings mit ev. Sonderzeichen handelt. Hier steht NICHT, daß LV den String selbständig verändert (erweitert), ohne daß der Anwender das merkt: Wenn ich bei der String-Normalanzeige \n eingebe, dann macht LV intern daraus \\n und hängt das ans Zeilenende an: das ist ja nun gar nicht gewollt und hierüber bin ich gestolpert. Gebe ich allerdings bei der Code-Anzeige \n ein, dann bleibt das \n !! Oder auch anders formuliert: wenn ich in einer klassischen Hochsprache zwei Strings miteinander verknüpfe und einer davon ist \n dann bleibt das auch \n ! Aber ich lerne immer noch dazu, obwohl ich das FM benutze. Viele Grüße Herby RE: In Textdatei schreiben - GerdW - 17.10.2013 07:46 Hallo Herby, Zitat:‘\’-Code-Anzeige: Zeigt alle nicht darstellbaren Zeichen als Escape-Sequenzen an.Das hast du falsch interpretiert! LabVIEW ändert keine Strings eigenmächtig! Wenn du bei einem String in Normalanzeige "\n" eintippst, dann willst du ein Backslash und ein n im String haben. Wenn du diesen String danach auf \-Code-Anzeige umschaltest, wird der Bckslash natürlich (in Übereinstimmung mit der Kontexthilfe) als \\ angezeigt: der Backslash dient in dieser Anzeigeart als Escapecode und muss deshalb selbst "ge-escape-t" werden... Wenn du in LabVIEW in einem String ein LF haben willst, musst du nur die Return-Taste drücken... Zitat:wenn ich in einer klassischen Hochsprache zwei Strings miteinander verknüpfe und einer davon ist \n dann bleibt das auch \n !Wenn ich in einer klassischen Hochsprache in einem Text die Zeichen \n" haben will, muss ich sie auch so eintippen. Wenn ich in einer klassischen Hochsprache ein LF (Linefeed) haben will, muss ich das über entsprechende Steuerzeichen oder Formatierbefehle einfügen! Es sei denn, diese "klassische" Hochsprache verändert eigenmächtig die eingegebenen Strings und filtert Steuerzeichen aus - was dann hoffentlich in deren Kontexthilfe vermerkt ist... |