Ich nehme mal an, dass bei DBB0 irgendeiner der Strings anfängt.
Wenn du dir den in der VAT anzeigen lassen willst, dann mußt du dir die ersten beiden Bytes, die ja der Header sind, als WORD oder so darstellen lassen. Denn Rest kannst du dir dann in maximal DBD's als Zeichen anzeigen lassen. Da sollte dann auch etwas passendes drin stehn.
Falls dem nun nicht der Fall ist müssen wir das Ganze mal einzeln debuggen.
Dafür wäre es dann ganz interessant, wenn du erstmal nur einen String bildest und mitteilst, was wann wo drin steht.
Gruß
Larry
Naja ich kann ja ruhig den Header anzeigen lassen, danach müssen dann aber ja irgendwo die richtigen Zeichen anfangen. Die speichere ich ja als array of char und somit muss er doch auch in den einzelnen Bytes die Zeichen anzeigen?!
Ich habe ja tatsächlich die Sekunden fast richtig drin gehabt - allerdings sind die nur von 1-9 gelaufen, die Zehnerposition lief nicht richtig. Minuten und Stunden garnicht.
Ich dachte es liegt evt. an den Vorzeichen der Int-Zahlenwerte und habe jetzt mal hinter die Int2String-Funktionen die MID-Funktion gesetzt, um
2 Zeichen ab dem 2. Zeichen in die Stunden_Str, Minuten_Str, Sekunden_Str zu schreiben. Half aber auch nichts...
Ich bastel das jetzt mal um, ohne Concat usw. Dann schauen wir mal was da drin steht
EDIT1: Wenn ich nur den Sekunden-Str (ohne Vorzeichen über MID) mittels BLKMOV in den DB schreibe, bekomme ich:
DBB2 und DBB3 läuft von 0-9 (ZEICHEN) im Sekundentakt, danach steht in
DBB2 die 2 (DEZIMAL) und DBB3 bleibt auf 9 (ZEICHEN) stehen, bis es wieder von vorne los geht
EDIT2: Komme der Sache wohl auf die Spur. Die STRING-Vars waren nur mit einer Länge von 2. Wenn aber erstmal das Vorzeichen mit drin ist, brauche ich ja 3.
Nachdem ich das geändert habe, laufen nun insgesamt 3 Werte (Bytes) mit, aber immernoch fehlerhaft
DBB3+4 läuft von 0-9 im Sekundentakt
DBB2 zeigt die Zehnerstelle
Nach einem vollen Durchlauf (Zehnerstelle eigentlich 0) laufen DBB2+3 im Sekundentakt, bis die ersten 10 Sekunden voll sind (Zehnerstelle 1).
>>> Muss ich evt. nach Int2String in String[3] speichern und danach über MID das Vorzeichen abschneiden und in einen extra String[2] speichern, der auch im Header mit der Länge 2 belegt ist? Der aktuell noch genutzte String[3] ist ja auch dann mit einer Länge von 3 im Header belegt, hat nach der MID-Funktion aber nur noch eine (tatsächliche) Länge von 2?!
EDIT3: Hab das mal zum Test umgesetzt und es funktioniert. Auch das mit der Addition von 100.
Jetzt brauche ich eigentl. nur noch etwas Hilfe, um den Pointer zum Abschneiden vom Header (für BLKMOV) zu basteln
...hab da jetzt alles probiert was ging bzw. was ich im Netz fand, aber klappte nicht. BLKMOV gibt nen Ausrichtungsfehler beim Lesen aus :-( Kann mir da wer helfen?