ASCII u Binärdaten unterscheiden

Winner

Erfahrenes Mitglied
Hallo zusammen! Zwar bin ich im moment auf der suche nach einer Effektiven unterscheidungs Methode! Zwar geht es darum, das bei mir die Daten von einem Comport kommen! Große Datenmenge in einer Sekunde! Da aber in Echtzeit noch eine Prüfung stattfinden muss, muss ich die ASCII Daten von den Binärdaten trennen. Kann mirt da einer weiter helfen! Meine Daten die ich vom Comport bekomme sind in einem char Array gespeichert im Moment durch suche ich das Array in einer For Schleife. Das einzige was ich kenne sind die Identifier für eine Asscii Message sowie das Ende der Message! Kann mir da einer was zu sagen wie ich die sehr schnell aus dem Array lesen kann. Das auslesen der Daten erfolgt im moment in eime Thread der Eventgesteurt arbeitet
 
Hier ein Vorschlag:
Nimm doch die ersten 50-100 empfangenen Bytes und prüfe deren ASCII-Range. Wenn die innerhalb der normalen Durckzeichen liegt, dann behandel das Ganze als ASCII-Daten und nicht als Binärdaten.
Evtl. hilft dir das ja und verhindert eine Verwendung der ASCII-Anfänge und -Enden. 50-100 Bytes auf numerischen Wert prüfen sollte schnell genug gehen.
 
Hallo, vielen dank für die Antwort! Das reicht aber leider nicht aus! Ich muss da schon den ganzen String druchprüfen und daas dauert defintiv zu lange! Ich bin im moment dabei die Methode strtok zu bneutzen! Mal schauen onb ich damit zu Erfolg komme! Aber weitere Vorschläge werden gnere angenommen.

PS: In meinem Buffer, Größe 1024 Bytes können die ersten 100Bytes Binär sein und dann erst wieder 100 in Ascii Bytes!

Bitte umn weiter Vorschläge! Aber ich wünsch euch auf diesen wege ein schönes Osterfest
 
Darf ich mal dumm fragen?
Wie unterscheidest du überhaupt, ob ein byte binär oder ASCII ist?
Wie unterscheidest du eine dezimale 169 von einem A?
Das was du bekommst, egal von woher ist IMMER binär, ASCII wird es erst wenn du es als string oder char definierst.
 
Zurück