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

OP #1376299
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
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
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
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
> 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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.