INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Serielle Zeichenübertragung



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

03.07.2009, 18:18
Beitrag #11

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Zeichenübertragung
' schrieb:aber wenn ein zufällig erzeugtes Datum irgendwo mittendrin ein "0D" oder ein "0A" hat, wird dieses jeweils als "0D0A" geschrieben! Und das nicht am Zeilenende. Es handelt sich um ein Byte, das eben auch mal "0D" sein darf, und unverändert in der Reihe an Bytes in die Datei geschrieben werden soll!

Das ist kein Bug. Das ist per Definition richtig so. In als Textfile deklarierte Files gibt es nur lesbaren Text. 0D oder 0A (1A gilt sogar ggf. als Textfileende) können also per se nicht als Datenzeichen vorkommen.

Fazit: als Binär deklariertes File verwenden.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2009, 19:09
Beitrag #12

ImExPorty Offline
LVF-Freak
****


Beiträge: 572
Registriert seit: Jan 2008

8.6
2001
kA

65934
Deutschland
Serielle Zeichenübertragung
Hallo wohl,
auch wenn mein Posting scheinbar informativ untergegangen ist, eine zusätzliche Info zu:
...ist das so? oder kommt 0A von dem (Write To Spreadsheet File.vi)
in der LV Hilfe gibt es unter dem Suchbegriff:ASCII_Codes nachfolgende allgemeingültige Tabelle
   
hier sind somit auch die nicht darstellbaren Zeichen aufgelistet, die wenn sie als ASCII Code in eine Text geschrieben werden Funktionalität besitzen.

nun zur Frage nach:
0A-> soll hier in ein einer Datei tatsächlich eine Zeilenschaltung durchgeführt werden, ohne das der Einfügepunkt wieder am Zeilenanfang beginnt, also versetzt in der nächten Zeile weiter?
0D-> soll hier ein Wagenrücklauf erfolgen, ohne Zeilenschaltung, also die Zeile überschieben werden?

wie man sieht, wurde das logische Ergänzen seitens LV realisiert, wenn in Textdateien Steuerzeichen geschrieben werden.

1 Postingempfehlungen, 2 Motivation
Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2009, 19:24
Beitrag #13

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Serielle Zeichenübertragung
' schrieb:Das ist kein Bug. Das ist per Definition richtig so. In als Textfile deklarierte Files gibt es nur lesbaren Text. 0D oder 0A (1A gilt sogar ggf. als Textfileende) können also per se nicht als Datenzeichen vorkommen.

Fazit: als Binär deklariertes File verwenden.
Ich komme zwar zum selben Fazit, aber nicht mit derselben Erklärung. h0D und h0A kommen schon in einem normalen Textfile vor, bloß sind es halt die Zeichen "Carriage Return" und "Newline" (oder r und n in der Codes-Darstellung von LV).

So, LV interpretiert in einem String sowohl r als auch n für sich alleine schon als Zeilenumbruch (in der Unix-Welt langt schließlich schon ein n für Zeilenvorschub). Jetzt schreibst du unter Windows einen String per "Write To Text" (dieses VI wird nämlich tief untem im Write To Spreadsheet verwendet) auf deine HDD, und LabVIEW ersetzt nun schön brav jedes r und n durch den Windowszeilenumbruch, der da lautet rn.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.07.2009, 09:24
Beitrag #14

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Serielle Zeichenübertragung
Vielen Dank für die vielen gut gemeinten Belehrungen.

Daß Wondows die Fernschreiber-Kommandos für einen Zeilen-Neuanfang übernommen hat ist mir bekannt. Dennoch, wenn ich nun wirklich nur eines dieses Doppel-Bytes schreiben möchte, sollte dieses nicht mit Konsequenz verboten werden.

Meine Anfrage richtete mich eigentlich an die Bit- und Byte-Jongleure, die auch kleinere Einheiten, als Text-Bestandteile verwenden.

Wolfgang
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.07.2009, 13:20
Beitrag #15

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Serielle Zeichenübertragung
' schrieb:Vielen Dank für die vielen gut gemeinten Belehrungen.

Meine Anfrage richtete mich eigentlich an die Bit- und Byte-Jongleure, die auch kleinere Einheiten, als Text-Bestandteile verwenden.

Die Lösung wurde mehrfach genannt (z.Bsp. Post#10), es sind nicht nur Belehrungen -_-
Hier die relativ einfachen 2 Lösungen zum Problem. (ohne Bit und Byte jonglieren)


Angehängte Datei(en) Thumbnail(s)
   

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.07.2009, 14:13
Beitrag #16

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Serielle Zeichenübertragung
Vielen Dank,

sieht plausibel aus, nur die VIs zum Datenspeichern habe ich in meiner Palette nicht gefunden. Ich habe nur das eine Symbol zumSchreiben in Tabellenkalkulation. Und wenn ich einen Integer an dieses Symbol führe, gibt es eine Fehlermeldung. (Habe ich vor dem Posten schon probiert, erst als gar nichts klappte ..)

Kann sein, daß in meiner Version von LabVIEW dieses vi nicht enthalten ist???

Lv86_img


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.07.2009, 14:38
Beitrag #17

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Serielle Zeichenübertragung
Brille zuhaus vergessenFlirt-> sind doch die ersten 2 auf deinem Bild.

Es gibt VI die sind polymorph, d.h sie können verschiedene Datentypen verarbeiten.
In der Regel wird das autom. anhand des angeschlossenen Verbindung erkannt.

Mit einem rechteMausTaste klick auf das VI, dort wählst du Visible Item View-Polymor... oder weiter unten *Select Typ*
(wie das im deutschen LV heisst ???)

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.07.2009, 15:00
Beitrag #18

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Serielle Zeichenübertragung
' schrieb:So, LV interpretiert in einem String sowohl r als auch n für sich alleine schon als Zeilenumbruch (in der Unix-Welt langt schließlich schon ein n für Zeilenvorschub). Jetzt schreibst du unter Windows einen String per "Write To Text" (dieses VI wird nämlich tief untem im Write To Spreadsheet verwendet) auf deine HDD, und LabVIEW ersetzt nun schön brav jedes r und n durch den Windowszeilenumbruch, der da lautet rn.

Ja, und umgekehrt funktioniert es natürlich genau so: Beim Einlesen einer Windows-Textdatei mit 0D0A als Zeilenendezeichen ersetzt LabVIEW jedes 0D0A durch 0A. LabVIEW beachtet also die Konventionen des jeweiligen Betriebssystems beim Schreiben und Lesen von Textfiles. Intern, d.h in LabVIEW-Strings, wird aber nur 0A als Zeilenende benutzt. (Ja, LabVIEW akzeptiert auch 0D - weil es tolerant ist)

Falls es jemand wegen sein Jugendlichkeit nicht weiß, wie das 0D0A als Zeilende-Zeichen zustandekam: Die ersten Fernschreiber hatten noch keine digitale Elektronik, die diesen Namen verdient, insbesondere keinen Datenpuffer. Für den Wagenrücklauf hatte man also nicht mehr Zeit als für das Schreiben eines einzelnen Zeichens. Mit 0D0A hatte man aber immerhin zwei Zeichen Zeit und schaffte damit sagenhafte 50Baud.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.07.2009, 16:44
Beitrag #19

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Serielle Zeichenübertragung
Was lange währt ...

Die Lösung dieses Problems ist ja sooo simpel, man muß nur darauf kommen: Anstelle "In Tabellenkalkulation schreiben" nahm ich das vi "In Textdatei schreiben". Mir war die ganze zeit entgangen, mit Rechtsklick auf das Symbol erscheint ein Fenster, dort muß "EOL konvertieren" abgewählt werden.

Blush

Vielen Dank jedenfalls für die vielen Meldungen.

Wolfgang
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.07.2009, 09:09
Beitrag #20

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Serielle Zeichenübertragung
' schrieb:Mir war die ganze zeit entgangen, mit Rechtsklick auf das Symbol erscheint ein Fenster, dort muß "EOL konvertieren" abgewählt werden.
Top1
Ja mir auch, gesucht habe ich das, aber nicht gefunden. Blush
Bis LV8 war das auch als Eingang am LowLevel-File Read/Write als Eingang vorhanden.
Ich fand die alten FileI/O VI besser, die neuen sind für mich LowLevelVI mit Express-Konfiguration, welcher Depp bei NI hat das wohl zu verantworten.


Angehängte Datei(en) Thumbnail(s)
   

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: