Christian Seiler: ICO mit C++ verarbeiten

Beitrag lesen

Hallo,

ich arbeite zurzeit an einer Art Serveranwendung. Diese Serveranwendung muss auch *.ico, *.png, und *.jpg verarbeiten. Nun ist mir aber aufgefallen das in diesen Dateien die ASCII Null nicht dieselbe Bedeutung hat wie in einer *.txt Datei. Da sind ganz vielen Nullen auch schon ganz am Anfang. Wenn in einem char* String eine Null auftaucht wird der String als zu Ende erklärt. Was aber falsch ist da die Datei 150 KB hat.

Wie behandelt man solche Dateien? Wo und Wie speichert man sie ab?

Nunja, dass ein 0-Byte einen String beendet, ist aber auch eine C/C++-Eigenheit, in anderen Programmiersprachen ist das nicht unbedingt der Fall.

Wenn Du nun Binärdaten in C/C++ verarbeitest, dann bleibt Dir nichts anderes übrig, als Dir zu merken, wie groß die Binärdaten überhaupt waren. Sprich: Sobald Du einen Block einliest, merkst Du Dir, wie groß dieser Block war, dann ist es auch egal, wie viele 0-Bytes in dem Block vorkamen, Du kennst die Blockgrenze immer an Hand der Größe des Blocks.

Viele Grüße,
Christian