Hi Leute hab da ne Frage, hat jemand von euch ne Ahnung wie man rausbekommen kann ob das Datenfeld zuende ist sprich keine db´s mehr vorhanden sind?
hi... wie wärs denn mit einer von dir definierten Bytefolge am Datenfeldende, die du manuell überprüfst z.B: 0,255,0,254 Ein extra Befehl o.Ä ist mir nicht bekannt. MfG und3rt4ker
hab ich auch schon überlegt is aber problematisch da ich ne Laufschrift programmiere und da so gut wie jede kombination vorkommen kann... Hab von meinem ausbilder mal erfaren das es ne art routine gibt die man programmieren kann er is aber nich weiter drauf eingegangen, er meinte nur sei sehr schwer verständlich...
Ich geh mal davon aus, dass du Assembler meinst. 'db' spricht dafür. > aber problematisch da ich ne Laufschrift > programmiere und da so gut wie jede kombination vorkommen kann mag sein. Aber da 0 keinem darstellbaren ASCII Zeichen entspricht, wird das dann ja wohl in deinen Texten eher selten vorkommen.
@Karl heinz Buchegger Hörte sich für mich eher an, als würde er Bit-Patterns übertragen... sonst auf jeden Fall mit 0 terminieren. Was mir dazu einfällt: - Ein Bit mehr als notwendig verwenden und damit das Ende signalisieren - wenn das nicht geht: nur 7 der 8 Bits für Daten verwenden und das letzte Bit als Kennzeichen verwenden. Die Originaldaten müssen dann aus mehreren Bytes zusammengesetzt werden -> Aufwändig - Einen bestimmten Wert 'Escapen' z.B. (255, 0) heißt Ende der Daten, (255, 255) heißt 255. Alle anderen Werte normal übertragen. - Saubere Lösung: Daten zu Frames zusammenfassen und am Anfang eines jeden Frames die Länge ankündigen. (Streaming nicht ohne Weiteres möglich) - Oder eine getrennte Interrupt- oder sonstwas-Leitung legen und damit das Ende signalisieren (entspricht etwa der ersten Lösung, ändert aber die Datenübertragung selbst nicht) Hoffe da ist was brauchbares für dich bei - sonst noch mal melden ;) Gruß Kai
vielleicht für nen Buchstaben aber als leerzeichen brauch ichs dann schon ansonsten kann manns nur noch schwer lesen...
Ich war jetzt eher von einer Datenfütterung von außen ausgegangen. Wenn die Daten intern als 'db' vorliegen, dann einfach die Länge als int danebenlegen. >..., er meinte >nur sei sehr schwer verständlich... In die Kategorie fällt weder die 0-terminierung noch die explizite Längenangabe ;)
Definiere ein Symbol, das im Speicher hinter dem Datenfeld liegt. Vergleiche die Adresse dieses Symboles mit der (Anfangs-)Adresse des Datenfeldes und Du kennst die Länge des Datenfeldes. Alternative: Das Datenfeld dürfte ja wohl Text enthalten (Laufschrift?), daher dürften bestimmte Zeichen darin nicht vorkommen. Halte Dich an die C-Konvention, verwende 0 als Stringendekennzeichnung. 0, nicht "0" (0x30).
@eckel Kannst du mal einen Beispieldatensatz nennen? Ist dann leichter zu diskutieren, danke.
ich bin auch voll beim Laufschriftprogrammieren. g Und ich benutze die 0 am Ende des Datenfeldes für den Lauftext, gab noch nie Probleme und ich wüsste spontan nicht, wofür man die 0 sonst dahin schreiben würde. MfG und3rt4ker edit: @eckel: Das Leerzeichen entspricht im ASCII code nicht der 0 sondern 32, oder war was anderes gemeint?
>..., er meinte >nur sei sehr schwer verständlich... d.h. dass er Null Ahnung hat, es aber sich nicht sagen traut ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.