Ausgabeformatierung mit unsigned char
-
Folgendes Problem:
for(x=0;x<=laenge-10;x+=10) // Zählschleife pro auszugebende Zeile { tabelle.Format(" %5d \t%02X\t%02X\t%02X\t%02X\t%02X\t%02X\t%02X\t%02X\t%02X\t%02X",zeilen, ff=buffer[x] ,ff=buffer[x+1], ff=buffer[x+2],ff=buffer[x+3], ff=buffer[x+4],ff=buffer[x+5], ff=buffer[x+6],ff=buffer[x+7], ff=buffer[x+8],ff=buffer[x+9]); // zum Ausgabestring dazuschreiben (eine Zeile) anzeige[y]=tabelle; // Zeilen separat zwischenspeichern zeilen++; // Zeilen zählen y++; // Zeiger auf Daten weiterzählen }mit diesem Code wollen wir eine eingelesene ASCII Datei im Hexaformat wieder ausgeben. Die Zeichen sind im Feld buffer[], Format char(!). Buffer ist ein dynamisches Feld, d.h. es wir je nach Größe der Datei angelegt und beschrieben.
Komischerweise kann es nicht gleich als unsigned char angelegt werden! Warum?tabelle ist CString. Wenn jetzt eine Zeichen mit einem negativen Wert kommt, wird die Hexausgabe seltsam, denn dann gibt es die führenden FF (Bsp:"FFFFFFA2") mit aus. Das gilt es zu verhindern. Deshalb haben wir die Variable ff von Typ unsigned char eingeführt und so wie oben eingebaut. Jetzt funktioniert die Ausgabe im Debugmodus, allerding geht es nicht im Releasemodus.
Es liegt definitiv an dieser Stelle. Wenn die Variable FF wieder entfernt wird, dann funktioniert es auch in der Release Version, allerdings mit versauen die "negativen Zeichen" die Ausgabe. Kennt jemand dieses Problem und weiß vielleicht Abhilfe.
Danke schon jetzt!
-
Wieso sollte man das Array nicht sofort als unsigned char-array anlegen können?
-
man muss nur die Fehlermeldung lesen, kapieren und umsetzen, wahrscheinlich hat auch die dazwischenliegende Nacht geholfen

Gruß