Einzelnen Beitrag anzeigen

Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#12

Re: Typisierte vs. Untypisierte Konstante

  Alt 16. Jun 2009, 09:22
Hi,

es handelt sich um MagicBytes am Anfang einer Datei. Daran soll festgestellt werden, ob es sich um die richtige Datei handelt - es ist unwahrscheinlich, das eine andere Art von Datei mit dieser Buchstabensequenz gefolgt von drei #0-Zeichen beginnt. Und wir kennen ja alle die Dateien, die mit MZ, PNG, JFIF, TIFF, MTrk, PKZIP, EXIF oder einer ähnlichen Sequenz beginnen. Dies ist durchaus üblich. Und manchmal die einzige Möglichkeit den Typ eines Streams festzustellen (z. B. in RCDATA Ressourcen oder bei Wiederhergestellten Sequenzen gelöschter Dateien oder bei Dateien mit falscher oder ganz ohne Erweiterung).

Das #0 gehört in diesem Fall bewusst zu den MagicBytes dazu.. Ich möchte in jedem Fall sicherstellen, dass die 8 Bytes komplett übereinstimmen. Und ich hatte nicht erwartet dass ein statisches Array zum Vergleich in irgendwas umgewandelt wird. Hätte ich Array[0..7] of Byte gewählt dann dürfte es ja auch kein Problem geben wenn dort 0 vorkommt. Prinzipiell könnte ich mir auch den entsprechenden Int64 ausrechnen und mit diesem Vergleichen nur ich will lesbaren Code und da bietet sich ein statisches Array of AnsiChar halt an. Oder auch nicht wie sich gezeigt hat.

Gruß
Felix
Felix Alter
  Mit Zitat antworten Zitat