Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Datei auf Indikatoren für Binärdatei testen?

  Alt 9. Mai 2015, 14:52
Gibt es Anzeichen für BOM? Wenn ja, versuche, die nächsten paar Bytes entsprechend zu interpretieren.
Wenn nicht, kann es
a) eine Unicode-Datei ohne BOM
b) eine ASCII-Datei
c) eine Binärdatei sein

Bei (a) ist jedes zweite Byte eine 0. Vermutlich.
Bei (b) sind die Bytes=9,10,30 oder >=32 und <= 127. Meistens.

Du erstellst also eine Häufigkeitstabelle der ersten paar Zeichen (N=20 z.B.)
Bestehen die Bytes nur aus Zeichen, Ziffer, CR/LF? Dann handelt es sich vermutlich um eine Textdatei.
Haben wir fast so viele Nullen wie sonstige Bytes und sind die Bytes auch Zeichen, Ziffer CR/LF? Dann ist es vermutlich eine Unicode-Datei
Ansonsten ist die Wahrscheinlichkeit groß, das es sich um eine Binär bzw. um keine Textdatei handelt.

Aber sicher kannst Du nicht immer sein.
Ist viel zu aufwendig und unsicher. Meine bisherigen Tests haben gezeigt, dass die Prüfung auf verbotene ControlBytes und Doppel-NullBytes sehr zuverlässig ist. Bitte zeigt mir auch nur EINE Datei, wo diese Prüfung nicht funktioniert hat.
  Mit Zitat antworten Zitat