LabVIEWForum.de
per Case-Struktur <cr><lf> in String abfragen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: per Case-Struktur <cr><lf> in String abfragen (/Thread-per-Case-Struktur-cr-lf-in-String-abfragen)



per Case-Struktur <cr><lf> in String abfragen - conne - 08.10.2010 10:28

Moin!
Ich lese über eine serielle Schnittstelle Datena im NMEA Format aus. Jeder Datensatz wird immer mit <cr><lf> beendet. Nun will ich nach jedem Datensatz einen Zeitstempel mit einfügen, und dachte, das einfachste wäre, eine Case-Strucktur einzubauen, die nach dem Line Feed ausgelost wird, und einfach den Zeitstempel einfügt. Klappt aber nicht, weil ich nicht weiß, wie Line Feed in die Abfrage eingefügt wird. UNter Labview kenne ich nur die LF Konstante.
Hab mal meine Idee als Bild angefügt. Wie frage ich das also ab?

Lv85_img


per Case-Struktur <cr><lf> in String abfragen - Achim - 08.10.2010 11:18

rn

Du kannst alternativ mit der CRLF-Konstante vergleichen und damit einen T/F-Case auslösen!


per Case-Struktur <cr><lf> in String abfragen - Matze - 08.10.2010 13:52

Als Ergänzung dazu:

Die CRLF-Konstante nennt sich "Zeilenende-Konstante" (unter Windows).
Wenn man nicht weiß, dass CRLF ein Zeilenende in Windows ist, kann man lange suchen.Wink

Unter Mac und Linux fängst du damit übrigens nichts an. Dort lautet diese Konstante CR bzw. LF.
Soll das unter jedem Betriebssystem laufen, könntest du die Konstanten CR (= Wagenrücklauf-Konstante)und LF (= Zeilenvorschub-Konstante) per "Strings verknüpfen" manuell aneinander hängen.

Grüße


per Case-Struktur <cr><lf> in String abfragen - Lucki - 08.10.2010 14:34

Daß ein Datensatz mit einem Zeilenende-Zeichen endet, ist das Beste, was Dir passieren kann. In der Visa-Konfiguration (Für Baude-Rate usw.) einfach TermChar aktivieren, bzw. nichts tun, da das automatisch aktiviert ist. Visa Read wartet dann so lange, bis das Zeilenende-Zeichen im Empfangsbuffer eintrifft. (Voraussetzung: Die Anzahl der als Konstante angeschlossenen Bytes ist größer als der Datensatz)
Ein besonderer Case für das Erkennen des Zeilendes ist dann nicht mehr notwendig: Der von VISA Read gelesene String ist immer genau ein Datensatz. Du brauchst dann also nur noch im Anschluß an VISA-Read deine Zeitinformation anzuhängen - fertig.
(Wenn am Zeilende CRLF steht, das eine, nicht als TermChar dienende Zeiche mit TrimmString vorher noch entfernen)


per Case-Struktur <cr><lf> in String abfragen - conne - 11.10.2010 11:36

Ohja, danke! Die letzte Antwort war natürlich die einfachste, und damit die beste ;-)

Danke nochmals!