Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
15. Sep 2020
Der obige Link ist nicht mehr gültig. Hier findet sich das Zitat ebenfalls, zusammen mit einer Reihe von interessanten Informationen. Unter anderem diese hier:Heißt das, dass eine Sektion unter Umständen doch nicht immer 256 KB umfasst?
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
2. Mär 2017
Hab ich mir so ungefähr gedacht. Laut einer Quelle verwendet der File Cache immer "Sections" von 256 KB, das wäre also noch deutlich mehr als ein Festplattensektor. Merk ich mir mal für die Zukunft, dass man eine Datei immer 256 KB weit auslesen kann, wenn man sie überhaupt anfasst.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
28. Feb 2017
Vielen Dank euch beiden. TRawFormat(I) war der Punkt. Dass man an den (Integer-)Wert mittels Ord(RawFormat) rankommt, weiß ich mittlerweile; dass man auf ein Glied von TRawFormat so einfach zugreifen kann, weiß ich jetzt.
Das savePos war mir nicht klar, weil ich ja gerade eben von jeder JPG-Datei nur die ersten 20 Bytes auslesen will; aber klar, für einen universelleren Gebrauch ist das...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
27. Feb 2017
@Himitsu: Du hast natürlich Recht. Ich hatte den Code mal von irgendwoher übernommen und habe erst jetzt mal genauer geguckt: $I-} und Try ist natürlich Unsinn. Hab ich ja auch geändert. TFileStream und Read ist auch besser.
@Uwe Raabe: Wirklich toll. Was ich nicht verstehe: Warum das savePos? Aus Interesse: Wie sähe eine Enumeration denn aus?
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
25. Feb 2017
Wird ja immer kürzer.function IstRAWFormat(const Dateiname:string):Boolean;
var Datei:File; Buf:array of Byte;
BufCRW,BufARW,BufCR2,BufRW2,BufNEF,BufORF,BufPEF,BufRAF,BufRWL,BufSRW,BufX3F,
BufERF,BufFFF,BufMEF,BufMRW,BufNRW,BufDCR,BufSRF:TBytes;
begin
Result := False;
If FileExists(Dateiname) then begin
AssignFile(Datei,Dateiname);
{$I-}
Reset(Datei, 1);
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
25. Feb 2017
Tja, hätte man darauf nicht selbst kommen können? Ehrlich gesagt, auf die Konstruktion mit PAnsiChar(@BufCRW)vermutlich nicht, obwohl sie mir geläufig ist. Also dann:
function IstRAWFormat(const Dateiname:string):Boolean;
var Datei:File; Buf:array of Byte; BufCRW,BufARW,BufCR2:TBytes;
begin
{$I-}
Try
Try
AssignFile(Datei,Dateiname);
Reset(Datei, 1);
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
25. Feb 2017
Kaum fragt man, schon fallen einem die richtigen Suchbegriffe für Google ein.
Ein Machbarkeitskonzept auf der Basis einer Antwort auf stackoverflow von Bummi :function IstRAWFormat(const Dateiname:string):Boolean;
var Datei:File; Buf:array of Byte; BufCRW:TBytes;...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Benmik,
25. Feb 2017
Ich versuche, RAW-Dateien der diversen Kamerahersteller anhand ihrer Signaturen zu identifizieren. Hierbei gibt es die extrem nützliche Seite von Marco Pontobello in Kombination mit der Seite RAW-Samples und auch file-extensions.org.
Zur einfachen Identifizierung von JPG-Dateien anhand der charakteristischen ersten beiden Bytes habe ich folgende Prozedur verwendet:function JPGHeaderOK(const...