/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. |