Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi gibt es eine Funktion/Komponente die ein FileCRCSumme macht? (https://www.delphipraxis.net/90164-gibt-es-eine-funktion-komponente-die-ein-filecrcsumme-macht.html)

LingNeu 12. Apr 2007 16:36


gibt es eine Funktion/Komponente die ein FileCRCSumme macht?
 
Hallo Delphifreunde,
habe im Board schon nach sowas wie Prüfsumme und CRC gesucht.
Leider funktionieren die Sachen nicht bei meinem D7.
Die TorryFunktion bringt auch Fehlermeldungen. Da ich noch nicht so fit bin, kann ich mit der Fehlermeldung nichts anfangen.
Hat jemand eine Idee, wie ich es schaffe, eine CRC-Nummer von einer Datei unter D7 zu bekommen
Wäre mehr als dankbar für jeden Hinweis.
Vielen Dank

LingNeu

Delphi-Quellcode:
//Torry-Code
//Fehlermeldung bei Close(F) - zuviele Parameter
function TForm1.GetCheckSum(FileName: string): DWORD;
var
  F: file of DWORD;
  P: Pointer;
  Fsize: DWORD;
  Buffer: array [0..500] of DWORD;
begin
  FileMode := 0;
  AssignFile(F, FileName);
  Reset(F);
  Seek(F, FileSize(F) div 2);
  Fsize := FileSize(F) - 1 - FilePos(F);
  if Fsize > 500 then Fsize := 500;
  BlockRead(F, Buffer, Fsize);
  Close(F);
  P := @Buffer;
  asm
     xor eax, eax
     xor ecx, ecx
     mov edi , p
     @again:
       add eax, [edi + 4*ecx]
       inc ecx
       cmp ecx, fsize
     jl @again
     mov @result, eax
   end;
end;

LingNeu 12. Apr 2007 16:57

Re: gibt es eine Funktion/Komponente die ein FileCRCSumme ma
 
Hallo Delphifreunde,
jetzt bin ich doch noch fündig geworden unter Torry-Net
Es funktioniert einwandfrei unter D7
Vielen Dank für Eure Mühen
LingNeu

Klaus01 12. Apr 2007 20:10

Re: gibt es eine Funktion/Komponente die ein FileCRCSumme ma
 
Auch wenn es nicht mehr notwendig ist:
Delphi-Quellcode:
//Torry-Code
//ohne Fehlermeldung bei Close(F) - zuviele Parameter
function TForm1.GetCheckSum(FileName: string): DWORD;
var
  F: file of DWORD;
  P: Pointer;
  Fsize: DWORD;
  Buffer: array [0..500] of DWORD;
begin
  FileMode := 0;
  AssignFile(F, FileName);
  Reset(F);
  Seek(F, FileSize(F) div 2);
  Fsize := FileSize(F) - 1 - FilePos(F);
  if Fsize > 500 then Fsize := 500;
  BlockRead(F, Buffer, Fsize);
  FileClose(F); // <------
  P := @Buffer;
  asm
     xor eax, eax
     xor ecx, ecx
     mov edi , p
     @again:
       add eax, [edi + 4*ecx]
       inc ecx
       cmp ecx, fsize
     jl @again
     mov @result, eax
   end;
end;

LingNeu 13. Apr 2007 06:57

Re: gibt es eine Funktion/Komponente die ein FileCRCSumme ma
 
Hallo Klaus01,
da danke ich Dir trotzdem herzlich, weil ich jetzt wieder was dazugelernt habe!
ciao
LingNeu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.

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