Subversion Repositories checksum-tools

Compare Revisions

No changes between revisions

Regard whitespace Rev 6 → Rev 5

/trunk/Windows/SFVCorrect.dpr
File deleted
/trunk/Windows/SFVCorrect.dproj
File deleted
/trunk/Windows/Unit3.pas
File deleted
/trunk/Windows/ProjectGroup1.groupproj
File deleted
/trunk/Windows/SFVCorrect.identcache
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
-application/octet-stream
\ No newline at end of property
/trunk/Windows/SFVCorrect.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
-application/octet-stream
\ No newline at end of property
/trunk/Windows/Unit3.dfm
File deleted
/trunk/Windows/SFVCorrect.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
-application/octet-stream
\ No newline at end of property
/trunk/Windows/Common.pas
2,9 → 2,6
 
interface
 
uses
Classes;
 
type
TChecksum = class(TObject)
public
11,14 → 8,6
checksum: string;
end;
 
TCheckSumFile = class(TObject)
public
constructor Create(AFileName: string); virtual; abstract;
procedure ToStringList(slOut: TStringList); virtual; abstract;
function SingleFileChecksum(AFileName: string): string; virtual; abstract;
function MergeLine(AFileName, ACheckSum: string): string; virtual; abstract;
end;
 
implementation
 
end.
/trunk/Windows/LongFilenameOperations.pas
9,8 → 9,6
 
procedure MyAssignFile(var hFile: THandle; filename: string);
procedure MyReset(hFile: THandle);
procedure MyRewrite(hFile: THandle);
procedure MyWriteLn(hFile: THandle; s: AnsiString);
procedure MyReadLn(hFile: THandle; var s: string);
procedure MyCloseFile(hFile: THandle);
function MyEOF(hFile: THandle): boolean;
23,17 → 21,9
 
procedure MyAssignFile(var hFile: THandle; filename: string);
begin
hFile := CreateFile(PChar(filename), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, 0);
if hFile = INVALID_HANDLE_VALUE then
begin
if GetLastError = ERROR_ACCESS_DENIED then
begin
hFile := CreateFile(PChar(filename), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, 0);
hFile := CreateFile(PChar(filename), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, 0);
if hFile = INVALID_HANDLE_VALUE then RaiseLastOSError;
end
else RaiseLastOSError;
end;
end;
 
procedure MyReset(hFile: THandle);
begin
40,21 → 30,6
SetFilePointer(hFile, 0, nil, FILE_BEGIN);
end;
 
procedure MyRewrite(hFile: THandle);
begin
SetFilePointer(hFile, 0, nil, FILE_BEGIN);
SetEndOfFile(hFile);
end;
 
procedure MyWriteLn(hFile: THandle; s: AnsiString);
var
numWritten: Cardinal;
begin
s := s + #13#10;
WriteFile(hFile, s[1], Length(s), numWritten, nil);
if Cardinal(Length(s)) <> numWritten then RaiseLastOSError;
end;
 
procedure MyReadLn(hFile: THandle; var s: string);
var
buf: array [0..0] of ansichar;
/trunk/Windows/MD5.pas
3,19 → 3,8
interface
 
uses
Classes, Common;
Classes;
 
type
TCheckSumFileMD5 = class(TCheckSumFile)
protected
Fmd5File: string;
public
constructor Create(AFileName: string); override;
procedure ToStringList(slOut: TStringList); override;
function SingleFileChecksum(AFileName: string): string; override;
function MergeLine(AFileName, ACheckSum: string): string; override;
end;
 
function md5file(const filename: string): string;
procedure MD5FileToStringList(amd5file: string; slOut: TStringList);
 
22,7 → 11,7
implementation
 
uses
SysUtils, IdHashMessageDigest, idHash, LongFilenameOperations;
SysUtils, IdHashMessageDigest, idHash, Common, LongFilenameOperations;
 
function md5file(const filename: string): string;
var
101,30 → 90,4
end;
end;
 
{ TCheckSumFileMD5 }
 
constructor TCheckSumFileMD5.Create(AFileName: string);
begin
inherited;
fmd5File := AFileName;
if not SameText(ExtractFileExt(AFileName),'.sfv') then
raise Exception.Create('Invalid checksum file extension.');
end;
 
function TCheckSumFileMD5.MergeLine(AFileName, ACheckSum: string): string;
begin
result := ACheckSum + ' *' + AFileName;
end;
 
function TCheckSumFileMD5.SingleFileChecksum(AFileName: string): string;
begin
result := md5file(AFileName);
end;
 
procedure TCheckSumFileMD5.ToStringList(slOut: TStringList);
begin
inherited;
MD5FileToStringList(fmd5File, slOut);
end;
 
end.
/trunk/Windows/SFV.pas
3,19 → 3,8
interface
 
uses
Classes, Common;
Classes;
 
type
TCheckSumFileSFV = class(TCheckSumFile)
protected
sfvFile: string;
public
constructor Create(AFileName: string); override;
procedure ToStringList(slOut: TStringList); override;
function SingleFileChecksum(AFileName: string): string; override;
function MergeLine(AFileName, ACheckSum: string): string; override;
end;
 
function CalcFileCRC32(filename: string): string; overload;
procedure SFVFileToStringList(aSFVFile: string; slOut: TStringList);
 
22,7 → 11,7
implementation
 
uses
Windows, SysUtils, CRC32, LongFilenameOperations;
Windows, SysUtils, CRC32, Common, LongFilenameOperations;
 
function CalcFileCRC32(filename: string): string; overload;
var
91,30 → 80,4
end;
end;
 
{ TCheckSumFileSFV }
 
constructor TCheckSumFileSFV.Create(AFileName: string);
begin
inherited;
sfvFile := AFileName;
if not SameText(ExtractFileExt(AFileName),'.sfv') then
raise Exception.Create('Invalid checksum file extension.');
end;
 
function TCheckSumFileSFV.MergeLine(AFileName, ACheckSum: string): string;
begin
result := AFileName + ' ' + ACheckSum;
end;
 
function TCheckSumFileSFV.SingleFileChecksum(AFileName: string): string;
begin
result := CalcFileCRC32(AFileName);
end;
 
procedure TCheckSumFileSFV.ToStringList(slOut: TStringList);
begin
inherited;
SFVFileToStringList(sfvFile, slOut);
end;
 
end.