home *** CD-ROM | disk | FTP | other *** search
- unit DLLWrapper;
-
- interface
-
- uses Classes, SysUtils;
-
- function DoGenerate(const Source, Target: String; Stream: TStream; Config: String): Integer; forward;
-
- implementation
-
- uses PatchGenerator;
-
- function DoGenerate(const Source, Target: String; Stream: TStream; Config: String): Integer;
- var
- PG: TPatchGenerator;
- a: Integer;
- begin
- WriteLn('Generating '+ExtractFileName(Source)+' to '+ExtractFileName(Target)+'...');
-
- PG:=TPatchGenerator.Create;
- PG.StartBlockSize:=512;
- PG.MinimumBlockSize:=512;
- PG.BlockDivider:=2;
- PG.StepSize:=256;
- try
- a:=Pos(',',Config);
- if(a=0) then a:=Length(Config)+1;
- PG.StartBlockSize:=StrToInt(Copy(Config,1,a-1));
- Config:=Copy(Config,a+1,Length(Config));
-
- a:=Pos(',',Config);
- if(a=0) then a:=Length(Config)+1;
- PG.MinimumBlockSize:=StrToInt(Copy(Config,1,a-1));
- Config:=Copy(Config,a+1,Length(Config));
-
- a:=Pos(',',Config);
- if(a=0) then a:=Length(Config)+1;
- PG.BlockDivider:=StrToInt(Copy(Config,1,a-1));
- Config:=Copy(Config,a+1,Length(Config));
-
- a:=Pos(',',Config);
- if(a=0) then a:=Length(Config)+1;
- PG.StepSize:=StrToInt(Copy(Config,1,a-1));
- finally
- end;
-
- Result:=PG.CreatePatch(Source,Target);
- PG.WriteToStream(Stream);
- PG.Free;
- WriteLn(ExtractFileName(Source)+' -> '+ExtractFileName(Target)+': '+IntToStr(Result)+' bytes');
- end;
-
- end.
-