Wert von CR/LF (Carriage Return & Line Feed)

OP #1376299
Lesenswert?

Hi Leute.

Ich habe einen String der ich von der UART empfange, daraus möchte ich 
gerne ein Zeichen heruas "destillieren" (es steht immer am gleichen 
Ort.)

Der String sieht so aus:

CR LF A CR LF CR LF CR LF CR LF

Also schreibe ich in meinem Code:

I = Right(I , 9)
I = Left(I , 1)

Doch wieso bekomme ich mein Zeichen nicht? (Also das "A")

welchen Wert hat denn ein CR? Nicht =1?

Lg
Gast #1376335
Lesenswert?

Hi

Tschuldigung. Natürlich $0D.

>ich brauche übrigens die hex-werte, also 13 und 10

Das ist dezimal.

>Aber wenn ich das als HEX sende (mit hterm), wie kriegt dann das der MC?
>Als einziges Zeichen oder als 2?

1 Zeichen. Wenn du es richtig machst.

MfG Spess
#1376337
Lesenswert?

Dir ist schon klar, was Zahlensysteme sind?

CR ist 13(10), D(16) bzw. 15(8). Alternativ auch einfach 1101(2).

ein LF(gleichbedeutend mit NL) ist 10(10), A(16) oder 12(8). Binär: 
1010(2).

Selbstverständlich kommen diese 2 Zeichen nicht als ein Zeichen an, 
warum sollten sie? Und vor allem WIE sollten sie?

Kleiner Edit:

Bitte schreib doch nächstes mal auch dazu, dass du in Bascom 
programmierst. tut zwar hier direkt nichts zur Sache, aber da du einen 
Codeschnipsel beifügst ist das ganz angemessen. Außerdem kann es auch 
mal Probleme geben, die vielleicht programmiersprachenabhängig anders am 
sinnvollsten gelöst werden.
OP #1376345
Lesenswert?

Okay, vielen dank euch allen, doch bin doch noch nicht über die lösung 
gestolpert :$ ^^ ;)

Hier mal der String den ich empfange:

at+cmgr=1<\r><\r><\n>+CMGR: "REC 
READ","XXXXXXXXXX",,"09/08/08,18:09:13+08"<\r><\n>A<\r><\n><\r><\n>OK<\r 
><\n>

So, ich will jetzt hier das A heruashohlen (das Grossgeschriebene 
welches in leserichtung vor dem OK kommt)

Schubst mich bitte n'bisschen;)
Gast #1376346
Lesenswert?

> Doch wieso bekomme ich mein Zeichen nicht?

Vielleicht komprimiert der Empfang ein CRLF zu einem \n.

Aber dein Problem ist ein anderes:

Du schreibst Scheiss-Code.
Nämlich Code der nur sonntags vormittags vielleicht funktioniert.
Weil du Voraussetzungen annimmst (der String ist garantiert SO!)
die nicht unbedingt stimmen müssen.

Richtig schreibt man Code, der den empfangenen String Zeichen für 
Zeichen analysiert, und sich Gedanken macht, was er tun soll, wenn etwas 
nicht so ist, wie es sein sollte.

Mir scheint, er sollte analysieren, ob das A am Zeilenanfang steht.
Und als Zeilenende darf er CR und LF annehmen, nicht unbedingt beide 
direkt hintereinander.


Desweiteren hätte BASCOM die MID Funktion um ein Zeichen aus dem String 
zu holen, oder man holt es als Byte

http://www.rn-wissen.de/index.php/Bascom_Strings_und_Bytes

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren