![]() |
AW: Datei auf Indikatoren für Binärdatei testen?
Zitat:
![]() |
AW: Datei auf Indikatoren für Binärdatei testen?
Wie ich schon zu Anfang sagte: Ich bin mir der Problematik dieser Unterscheidung bewusst. Letztlich wird es wohl darauf hinauslaufen, für welchen speziellen Zweck man die Unterscheidung benötigt. Denn man könnte den Aufwand auf die Spitze treiben, indem man z.B. eine semantische Prüfung für alle existierenden Sprachen einbaut usw.
Könnt ihr aber die heuristische Prüfung etwas näher spezifizieren, vielleicht sogar mit etwas Code unterlegen (bezogen auf die obige Funktion). |
AW: Datei auf Indikatoren für Binärdatei testen?
Mir ist gerade ein Gedanke gekommen, wie man eine Heuristik abseits von BOM & Co. implementieren könnte: Es müsste doch möglich sein, eine Art statistischen "Streuungs"-Faktor (oder grob gesagt "statistischer Fingerabdruck") der Bytes zu berechnen, der bei "Binärdateien" signifikant von "Textdateien" abweichen sollte. Was haltet ihr davon?
|
AW: Datei auf Indikatoren für Binärdatei testen?
|
AW: Datei auf Indikatoren für Binärdatei testen?
Zitat:
|
AW: Datei auf Indikatoren für Binärdatei testen?
Zitat:
Zitat:
Aber deine Idee ist natürlich viel besser. Klar. ;-) |
AW: Datei auf Indikatoren für Binärdatei testen?
Zitat:
Die Menge der verschiedenen Dateiformate in Verbindung mit verschiedenen Sprachen ist so zahlreich, daß mir dein Ansinnen schier unmöglich sicher zu lösen scheint. Ist eine gezippte Textdatei noch eine Textdatei? Oder eine verschlüsselte Textdatei? Ist eine RTF-Datei mit Grafiken und Ole-Objekten eine gemischte Datei? Oder eine Exe-Datei mit zahlreichen lesbaren Textabschnitten? Gehe ich richtig in der Annahme, daß du eigentlich herausfinden möchtest, ob eine Datei binär übertragen werden soll oder nicht? Was man wirklich einigermaßen sicher herausfinden kann ist, ob eine Datei einem bekannten Format entspricht, z.B. JPEG oder ASCII oder eben auch Executables oder XML etc., wie das z.B. das Programm ![]() Mir scheint es daher sinnvoll, dich auf die im Zusammenhang mit deinem Projekt auftretenden Dateiformate zu konzentrieren bzw. zu beschränken, falls das irgendwie möglich ist und nicht potentiell alle bekannten und unbekannten Dateiformate auftreten könnten. Der entsprechende ![]() ![]() ![]() ![]() ![]() |
AW: Datei auf Indikatoren für Binärdatei testen?
Zitat:
|
AW: Datei auf Indikatoren für Binärdatei testen?
Nur um das Ganze nochmal kurz zu erklären:
* man kann nicht prüfen "ist das eine Textdatei" * man kann nur prüfen "ist das keine Datei eines/mehrerer bestimmter Textformate" (vermutlich ungültige Zeichen/Kodierungen enthalten) * Kodierungen ala UTF-8 haben den Vorteil, daß sie erkennbare/prüfbare Strukturen besitzen (solange Nicht-ASCII-Zeichen enthalten sind) * soll es genauer sein, dann muß man eine linguistische Analyse vornehmen (also auf den Inhalt, ob der einem erlaubten Format entspricht) * 100%ig sicher kann aber niemals etwas werden Man muß also zuerst versuchen die Kodierung zu erkennen und kann sich nach Dekodierung den Inhalt ansehn. |
AW: Datei auf Indikatoren für Binärdatei testen?
Vielleicht sollte ich das, was ich in der Eingangsfrage gesagt habe, nochmals wiederholen, um Missverständnisse wie jenes von "perlsau" aufzuklären: Ich habe nicht gesagt, dass ich den Anspruch habe, ein perfektes Unterscheidungskriterium für Text- und Binärdateien zu schaffen. (Denn das kann es nicht geben). Ich habe ausdrücklich danach gefragt, welche weiteren Indikatoren für Binärdateien es noch geben könnte. Nichts anderes. Da kam der nützliche Hinweis zu den ControlBytes und zu den Doppel-NullBytes, was ich auch umgesetzt habe. Nochmals danke dafür. Auch für alle anderen sachlichen Anregungen vielen Dank! Aber bitte sachlich und erwachsen bleiben ...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz