Hallo,
ich würde gerne die Prüfsumme (SHA1) einer Datei mit delphi ermitteln. Nach einigem Suchen habe ich genügend Hinweise gefunden, dazu DEC zu verwenden. Wie in einigen Beiträgen zu lesen ist, scheint das im allgemeinen auch zu gelingen. Ich habe nach einigem rumsuchen auch eine Datei DEC_5_1c.zip gefunden und die entsprechenden Units aus dem Ordner Part I in mein Projekt eingebunden.
Beim Aufruf der entsprechenden Funktion
Delphi-Quelltext
1:
| SHA1Checksum := THash_SHA1.CalcFile(edit_File.Text, nil, fmtHEX); |
Den Aufruf habe ich in dieser Art in einem Forenbeitrag gefunden. Die daraus resultierende Fehlermeldung lautet "Undefinierter Bezeichner fmtHEX".
Jetzt habe ich weiter rumgestöbert und habe zahlreiche Quellen gefunden, dass der Funktionsaufruf wohl richtig ist. Die Unit DECUtil.pas ist bei mir eingebunden. Allerdings sieht sie bei mir so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| unit DECUtil; {$I VER.INC}
interface
uses Windows, SysUtils, Classes, CRC;
type Binary = String; {$IFNDEF VER_D4H} LongWord = type Integer; {$ENDIF} PLongWord = ^LongWord; PByte = ^Byte; |
Auf
koders.com sieht der entscheidende Abschnitt aber so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| unit DECUtil;
interface
uses SysUtils, Classes;
{$I VER.INC}
const fmtDEFAULT = -1; fmtNONE = 0; fmtCOPY = 1; fmtHEX = 16; fmtHEXL = 1016; fmtMIME64 = $1064; fmtUU = $5555; fmtXX = $5858;
type {$IFNDEF VER_D4H} LongWord = LongInt; PLongWord = ^LongWord; {$ENDIF} PByte = ^Byte; PInteger = ^LongWord; |
Habe ich eine falsche Version erwischt? Falls ja, wo finde ich eine richtige Version?
Oder mache ich irgendetwas anderes falsch?
Danke und Gruß, Fetz
Moderiert von
AXMD: Code- durch Delphi-Tags ersetzt