Je veux vérifier un fichier a un IMAGE_DOS_SIGNATURE valide (MZ)est valide IMAGE_DOS_SIGNATURE
function isMZ(FileName : String) : boolean;
var
Signature: Word;
fexe: TFileStream;
begin
result:=false;
try
fexe := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
fexe.ReadBuffer(Signature, SizeOf(Signature));
if Signature = $5A4D { 'MZ' } then
result:=true;
finally
fexe.free;
end;
end;
Je sais que je peux utiliser un code dans l'unité Windows pour vérifier la IMAGE_DOS_SIGNATURE. Le problème est que je veux le le moyen le plus rapide pour vérifier IMAGE_DOS_SIGNATURE (pour un gros fichier). J'ai besoin de votre suggestion sur mon code ou peut-être un nouveau code?
Merci
Le transfert de données du disque vers la mémoire sera le plus gros goulot d'étranglement. Optimisez cela et inquiétez-vous des autres goulets d'étranglement plus tard. Vous êtes déjà plutôt optimal: ne lisez que 2 octets au début de chaque fichier. –