116 lines
2.5 KiB
Plaintext
116 lines
2.5 KiB
Plaintext
{$IFDEF WIN32}
|
|
{$I DEFINES.INC}
|
|
{$ENDIF}
|
|
|
|
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
|
|
|
|
UNIT File3;
|
|
|
|
INTERFACE
|
|
|
|
PROCEDURE ReCheck;
|
|
|
|
IMPLEMENTATION
|
|
|
|
USES
|
|
Dos,
|
|
Common,
|
|
File0,
|
|
File1;
|
|
|
|
PROCEDURE CheckFiles(FArea: Integer; CheckDiz: Boolean);
|
|
VAR
|
|
FN: AStr;
|
|
NumExtDesc: Byte;
|
|
DirFileRecNum: Integer;
|
|
FSize: LongInt;
|
|
BEGIN
|
|
IF (FileArea <> FArea) THEN
|
|
ChangeFileArea(FArea);
|
|
IF (FileArea = FArea) THEN
|
|
BEGIN
|
|
RecNo(FileInfo,'*.*',DirFileRecNum);
|
|
IF (BadDownloadPath) THEN
|
|
Exit;
|
|
NL;
|
|
Print('^1Checking ^5'+MemFileArea.AreaName+' #'+IntToStr(CompFileArea(FArea,0))+'^1 ...');
|
|
WHILE (DirFileRecNum <> - 1) AND (NOT Abort) AND (NOT HangUp) DO
|
|
BEGIN
|
|
Seek(FileInfoFile,DirFileRecNum);
|
|
Read(FileInfoFile,FileInfo);
|
|
|
|
IF Exist(MemFileArea.DLPath+FileInfo.FileName) THEN
|
|
FN := MemFileArea.DLPath+SQOutSp(FileInfo.FileName)
|
|
ELSE
|
|
FN := MemFileArea.ULPath+SQOutSp(FileInfo.FileName);
|
|
|
|
FSize := GetFileSize(FN);
|
|
IF (FSize = 0) THEN
|
|
BEGIN
|
|
FileInfo.FileSize := 0;
|
|
Include(FileInfo.FIFlags,FIIsRequest);
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
FileInfo.FileSize := FSize;
|
|
Exclude(FileInfo.FIFlags,FIIsRequest);
|
|
END;
|
|
|
|
IF (CheckDiz) AND (DizExists(FN)) THEN
|
|
BEGIN
|
|
FillChar(ExtendedArray,SizeOf(ExtendedArray),0);
|
|
GetDiz(FileInfo,ExtendedArray,NumExtDesc);
|
|
WriteFV(FileInfo,DirFileRecNum,ExtendedArray);
|
|
END;
|
|
|
|
Seek(FileInfoFile,DirFileRecNum);
|
|
Write(FileInfoFile,FileInfo);
|
|
|
|
NRecNo(FileInfo,DirFileRecNum);
|
|
END;
|
|
Close(FileInfoFile);
|
|
Close(ExtInfoFile);
|
|
END;
|
|
LastError := IOResult;
|
|
END;
|
|
|
|
PROCEDURE ReCheck;
|
|
VAR
|
|
SaveFileArea,
|
|
FArea: Integer;
|
|
CheckDiz,
|
|
SaveConfSystem,
|
|
SaveTempPause: Boolean;
|
|
BEGIN
|
|
CheckDiz := PYNQ('%LFReimport descriptions? ',0,FALSE);
|
|
SaveTempPause := TempPause;
|
|
TempPause := FALSE;
|
|
Abort := FALSE;
|
|
Next := FALSE;
|
|
NL;
|
|
IF (NOT PYNQ('Recheck all file areas? ',0,FALSE)) THEN
|
|
CheckFiles(FileArea,CheckDiz)
|
|
ELSE
|
|
BEGIN
|
|
SaveFileArea := FileArea;
|
|
SaveConfSystem := ConfSystem;
|
|
IF (SaveConfSystem) THEN
|
|
NewCompTables;
|
|
FArea := 1;
|
|
WHILE (FArea >= 1) AND (FArea <= NumFileAreas) AND (NOT Abort) AND (NOT HangUp) DO
|
|
BEGIN
|
|
Checkfiles(FArea,CheckDiz);
|
|
WKey;
|
|
Inc(FArea);
|
|
END;
|
|
ConfSystem := SaveConfSystem;
|
|
IF (SaveConfSystem) THEN
|
|
NewCompTables;
|
|
FileArea := SaveFileArea;
|
|
LoadFileArea(FileArea);
|
|
END;
|
|
TempPause := SaveTempPause;
|
|
END;
|
|
|
|
END.
|