|
@@ -59,6 +59,7 @@ interface
|
|
|
header : tpcpheader;
|
|
|
{ crc for the entire package }
|
|
|
crc : cardinal;
|
|
|
+ do_crc : boolean;
|
|
|
protected
|
|
|
function getheadersize:longint;override;
|
|
|
function getheaderaddr:pentryheader;override;
|
|
@@ -68,10 +69,14 @@ interface
|
|
|
public
|
|
|
procedure writeheader;override;
|
|
|
function checkpcpid:boolean;
|
|
|
+ procedure putdata(const b;len:integer);override;
|
|
|
end;
|
|
|
|
|
|
implementation
|
|
|
|
|
|
+uses
|
|
|
+ fpccrc;
|
|
|
+
|
|
|
{ tpcpfile }
|
|
|
|
|
|
function tpcpfile.getheadersize: longint;
|
|
@@ -142,6 +147,7 @@ implementation
|
|
|
procedure tpcpfile.resetfile;
|
|
|
begin
|
|
|
crc:=0;
|
|
|
+ do_crc:=true;
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -184,5 +190,15 @@ implementation
|
|
|
end;
|
|
|
|
|
|
|
|
|
+ procedure tpcpfile.putdata(const b;len:integer);
|
|
|
+ begin
|
|
|
+ if do_crc then
|
|
|
+ begin
|
|
|
+ crc:=UpdateCrc32(crc,b,len);
|
|
|
+ end;
|
|
|
+ inherited putdata(b, len);
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
end.
|
|
|
|