Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Datei auf Indikatoren für Binärdatei testen? (https://www.delphipraxis.net/185028-datei-auf-indikatoren-fuer-binaerdatei-testen.html)

BUG 9. Mai 2015 15:50

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

Zitat von PeterPanino (Beitrag 1300833)
Kann man davon ausgehen, dass UTF-16- und UTF-32-Dateien statistisch signifikant so gut wie immer einen BOM enthalten?

Auf keinen Fall! zB. für XML ist es nicht erforderlich.

PeterPanino 9. Mai 2015 16:03

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).

PeterPanino 9. Mai 2015 16:21

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?

Perlsau 9. Mai 2015 17:37

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

Dein Problem zeigt gewisse Ähnlichkeiten zu diesem dort :?

PeterPanino 9. Mai 2015 20:43

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

Zitat von Perlsau (Beitrag 1300847)
zeigt

Ich glaube, dass du einiges missverstehst ... vielleicht ist es die Perspektive?

Dejan Vu 9. Mai 2015 21:00

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

Zitat von PeterPanino (Beitrag 1300840)
Mir ist gerade ein Gedanke gekommen...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?

Zitat:

Zitat von PeterPanino (Beitrag 1300830)
Ist viel zu aufwendig und unsicher. Meine bisherigen Tests haben gezeigt, ..

:lol: Das ist genau das, was ich vorgeschlagen habe: Einige Zeichen können in Textdateien nicht vorkommen, aber auf der anderen Seite müsste man noch etwas genauer analysieren, was der Unterschied zwischen einer Datei ist, die einen Text enthält, und einer 'Binärdatei', die zufällig nur Buchstaben enthält.
Aber deine Idee ist natürlich viel besser. Klar. ;-)

Perlsau 9. Mai 2015 21:18

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

Zitat von PeterPanino (Beitrag 1300868)
Zitat:

Zitat von Perlsau (Beitrag 1300847)
zeigt

Ich glaube, dass du einiges missverstehst ... vielleicht ist es die Perspektive?

Was meinst du damit, ich würde einiges, insbesondere die Perspektive, mißverstehen? Welche Perspektive meinst du? Könntest du vielleicht etwas genauer bezeichnen, was ich deiner Ansicht nach mißverstehe? Wie sonst sollte ich mein Mißverständnis nachvollziehen und auflösen können?

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 OpenWith macht. Erst dann, wenn eine Datei keiner der bekannten Dateiformate zugeordnet werden kann, sollte man tiefergehende Analysemethoden einsetzen. Meines Wissens nach gibt es bislang keine Software und keinen bekannten Algorithmus, um Binärdateien zuverlässig von Textdateien unterscheiden zu können.

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 Wikipedia-Artikel bietet eine gute Einstiegsseite zu diesem Thema, insbesondere der Link zur Liste der Dateinamenserweiterungen ist zu empfehlen. Wenn du dann alle denkbaren Dateiformate in deine Prüfung integriert hast, wird kaum noch was übrigbleiben, das keinem bekannten Dateiformat entspricht. Weitere Links:

Informationstechnische Grundlagen (ITG)/ Dateiformate
Übliche Dateitypen
Dateiformate für das elektronische Publizieren

PeterPanino 9. Mai 2015 21:56

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

Zitat von Dejan Vu (Beitrag 1300873)
Aber deine Idee ist natürlich viel besser. Klar. ;-)

Kinder, es ist doch genug Sand für alle zum Spielen da ...

himitsu 9. Mai 2015 22:10

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.

PeterPanino 9. Mai 2015 22:11

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 15:33 Uhr.
Seite 2 von 5     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz