1250 lines
37 KiB
Plaintext
1250 lines
37 KiB
Plaintext
{$IFDEF WIN32}
|
||
{$I DEFINES.INC}
|
||
{$ENDIF}
|
||
|
||
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
|
||
|
||
UNIT File11;
|
||
|
||
INTERFACE
|
||
|
||
USES
|
||
Common;
|
||
|
||
TYPE
|
||
FileRecType = RECORD
|
||
FArrayFileArea,
|
||
FArrayDirFileRecNum: SmallInt;
|
||
END;
|
||
|
||
FileArrayType = ARRAY [0..99] OF FileRecType;
|
||
|
||
VAR
|
||
FArray: FileArrayType;
|
||
|
||
FUNCTION CanSee(CONST FileInfo: FileInfoRecordType): Boolean;
|
||
FUNCTION GetFileStats(FileInfo: FileInfoRecordType): AStr;
|
||
PROCEDURE InitFArray(VAR F: FileArrayType);
|
||
PROCEDURE DisplayFileAreaHeader;
|
||
PROCEDURE lDisplay_File(FileInfo: FileInfoRecordType; FArrayRecNum: Byte; SearchString: Str20;
|
||
NormalPause: Boolean);
|
||
PROCEDURE SearchFileSpec;
|
||
PROCEDURE ListFileSpec(FName: Str12);
|
||
PROCEDURE SearchFileDescriptions;
|
||
PROCEDURE GlobalNewFileScan(VAR FArrayRecNum: Byte);
|
||
PROCEDURE NewFilesScanSearchType(CONST MenuOption: Str50);
|
||
PROCEDURE FileAreaChange(VAR Done: Boolean; CONST MenuOption: Str50);
|
||
PROCEDURE CreateTempDir;
|
||
|
||
IMPLEMENTATION
|
||
|
||
USES
|
||
Dos,
|
||
Crt,
|
||
ArcView,
|
||
Common5,
|
||
File0,
|
||
File1,
|
||
File10,
|
||
Menus,
|
||
TimeFunc;
|
||
|
||
TYPE
|
||
DownLoadArrayType = ARRAY [0..99] OF SmallInt;
|
||
|
||
VAR
|
||
DLArray: DownloadArrayType;
|
||
Lines,
|
||
FileRedisplayLines: Byte;
|
||
|
||
PROCEDURE InitFArray(VAR F: FileArrayType);
|
||
VAR
|
||
Counter: Byte;
|
||
BEGIN
|
||
FOR Counter := 0 TO 99 DO
|
||
WITH F[Counter] DO
|
||
BEGIN
|
||
FArrayFileArea := -1;
|
||
FArrayDirFileRecNum := -1;
|
||
END;
|
||
END;
|
||
|
||
FUNCTION GetDlArray(VAR DLArray: DownLoadArrayType; CmdLen: Byte): Boolean;
|
||
VAR
|
||
s,
|
||
s1,
|
||
s2: Str160;
|
||
Counter,
|
||
Counter1,
|
||
Counter2,
|
||
Counter3: Byte;
|
||
Ok: Boolean;
|
||
BEGIN
|
||
Ok := TRUE;
|
||
FOR Counter := 1 TO (((LennMCI(MemMenu.MenuPrompt) + CmdLen) + 1)) DO
|
||
BackSpace;
|
||
FOR Counter := 0 TO 99 DO
|
||
DLArray[Counter] := -1;
|
||
Prt('Enter file number or range (##,##-##): ');
|
||
s := '';
|
||
MPL(20);
|
||
InputMain(s,20,[NoLineFeed]);
|
||
IF (SqOutSp(S) = '') THEN
|
||
OK := FALSE
|
||
ELSE
|
||
BEGIN
|
||
FOR Counter := 1 TO Length(S) DO
|
||
IF (NOT (S[Counter] IN ['0'..'9','-'])) THEN
|
||
Ok := FALSE;
|
||
IF (S = '-') OR (S[1] = '-') OR (S[Length(s)] = '-') THEN
|
||
OK := FALSE;
|
||
IF (Ok) THEN
|
||
BEGIN
|
||
NL;
|
||
s1 := '';
|
||
s2 := '';
|
||
Counter1 := 0;
|
||
FOR Counter := 1 TO Length(s) DO
|
||
BEGIN
|
||
IF s[Counter] IN ['0'..'9'] THEN
|
||
s1 := s1 + s[Counter]
|
||
ELSE
|
||
BEGIN
|
||
IF (s[Counter] = '-') THEN
|
||
BEGIN
|
||
s2 := '';
|
||
FOR Counter2 := (Counter + 1) TO Length(s) DO
|
||
BEGIN
|
||
IF (s[counter2] IN ['0'..'9']) THEN
|
||
s2 := s2 + s[counter2]
|
||
ELSE
|
||
BEGIN
|
||
IF (s1 <> '') AND (StrToInt(s1) >= 0) AND (StrToInt(s1) <= 99) AND
|
||
(S2 <> '') AND (StrToInt(s2) >= 0) AND (StrToInt(s2) <= 99) THEN
|
||
FOR Counter3 := StrToInt(s1) TO StrToInt(s2) DO
|
||
BEGIN
|
||
DLArray[Counter1] := Counter3;
|
||
Inc(Counter1);
|
||
END;
|
||
s1 := '';
|
||
Counter := Counter + Length(s2);
|
||
s2 := '';
|
||
Counter2 := Length(s);
|
||
END;
|
||
END;
|
||
Counter := Counter + Length(s2);
|
||
END
|
||
ELSE IF (StrToInt(s1) >= 0) AND (StrToInt(s1) <= 99) THEN
|
||
BEGIN
|
||
DLArray[Counter1] := StrToInt(s1);
|
||
Inc(Counter1);
|
||
s1 := '';
|
||
s2 := '';
|
||
END;
|
||
END;
|
||
END;
|
||
IF (Length(s1) <> 0) AND (StrToInt(s1) >= 0) AND (StrToInt(s1) <= 99) THEN
|
||
DLArray[Counter1] := StrToInt(s1);
|
||
IF (s1 <> '') AND (StrToInt(s1) >= 0) AND (StrToInt(s1) <= 99) AND
|
||
(S2 <> '') AND (StrToInt(s2) >= 0) AND (StrToInt(s2) <= 99) THEN
|
||
FOR Counter3 := StrToInt(s1) TO StrToInt(s2) DO
|
||
BEGIN
|
||
DLArray[Counter1] := Counter3;
|
||
Inc(Counter1)
|
||
END;
|
||
END;
|
||
END;
|
||
IF (NOT OK) THEN
|
||
BEGIN
|
||
FOR Counter := 1 TO 20 DO
|
||
OutKey(' ');
|
||
UserColor(1);
|
||
FOR Counter := 1 TO (LennMCI(MemMenu.MenuPrompt) + 21) DO
|
||
BackSpace;
|
||
END;
|
||
|
||
GetDLArray := OK;
|
||
END;
|
||
|
||
PROCEDURE Pause_Files;
|
||
VAR
|
||
TransferFlags: TransferFlagSet;
|
||
CmdStr,
|
||
NewMenuCmd: AStr;
|
||
SaveLastDirFileName: Str12;
|
||
Cmd: Char;
|
||
SaveMenu,
|
||
Counter,
|
||
CmdToExec: Byte;
|
||
Counter1,
|
||
SaveFileArea,
|
||
SaveLastDirFileRecNum: Integer;
|
||
Done,
|
||
CmdNotHid,
|
||
CmdExists,
|
||
FO: Boolean;
|
||
BEGIN
|
||
LIL := 0;
|
||
IF (Lines < PageLength) OR (HangUp) THEN
|
||
Exit;
|
||
Lines := 0;
|
||
FileRedisplayLines := 0;
|
||
FileAreaNameDisplayed := FALSE;
|
||
|
||
SaveMenu := CurMenu;
|
||
CurMenu := General.FileListingMenu;
|
||
IF (NOT NewMenuToLoad) THEN
|
||
LoadMenuPW;
|
||
AutoExecCmd('FIRSTCMD');
|
||
REPEAT
|
||
MainMenuHandle(CmdStr);
|
||
NewMenuCmd := '';
|
||
CmdToExec := 0;
|
||
TFilePrompt := 0;
|
||
Done := FALSE;
|
||
REPEAT
|
||
FCmd(CmdStr,CmdToExec,CmdExists,CmdNotHid);
|
||
IF (CmdToExec <> 0) AND (MemCmd^[CmdToExec].CmdKeys <> '-^') AND
|
||
(MemCmd^[CmdToExec].CmdKeys <> '-/') AND (MemCmd^[CmdToExec].CmdKeys <> '-\') THEN
|
||
BEGIN
|
||
IF (CmdStr <> '') AND (CmdStr <> 'ENTER') AND (MemCmd^[CmdToExec].CmdKeys <> 'L5') AND
|
||
(MemCmd^[CmdToExec].CmdKeys <> 'L6') AND (MemCmd^[CmdToExec].CmdKeys <> 'L7') AND
|
||
(MemCmd^[CmdToExec].CmdKeys <> 'L8') THEN
|
||
NL;
|
||
DoMenuCommand(Done,
|
||
MemCmd^[CmdToExec].CmdKeys,
|
||
MemCmd^[CmdToExec].Options,
|
||
NewMenuCmd,
|
||
MemCmd^[CmdToExec].NodeActivityDesc);
|
||
END;
|
||
UNTIL (CmdToExec = 0) OR (Done) OR (HangUp);
|
||
Abort := FALSE;
|
||
Next := FALSE;
|
||
CASE TFilePrompt OF
|
||
1 : ;
|
||
2 : BEGIN
|
||
Print('%LFListing aborted.');
|
||
Abort := TRUE;
|
||
END;
|
||
3 : BEGIN
|
||
Print('%LFFile area skipped.');
|
||
Next := TRUE;
|
||
END;
|
||
4 : BEGIN
|
||
Print('%LF^5'+MemFileArea.AreaName+'^3 '+AOnOff(NewScanFileArea,'will NOT','WILL')+
|
||
' be scanned.');
|
||
LoadNewScanFile(NewScanFileArea);
|
||
NewScanFileArea := (NOT NewScanFileArea);
|
||
SaveNewScanFile(NewScanFileArea);
|
||
END;
|
||
5 : BEGIN
|
||
IF GetDLArray(DLArray,Length(CmdStr)) THEN
|
||
IF (DLInTime) THEN
|
||
IF (NOT BatchDLQueuedFiles([])) THEN
|
||
BEGIN
|
||
Counter := 0;
|
||
WHILE (Counter <= 99) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
IF (DLArray[Counter] <> -1) THEN
|
||
IF (FArray[DLArray[Counter]].FArrayDirFileRecNum = -1) THEN
|
||
Print('%LF^7Invalid file number selected: "^9'+IntToStr(DLArray[Counter])+'^7".')
|
||
ELSE
|
||
BEGIN
|
||
SaveLastDirFileRecNum := LastDIRRecNum;
|
||
SaveLastDirFileName := LastDIRFileName;
|
||
FO := (FileRec(FileInfoFile).Mode <> FMClosed);
|
||
IF (FO) THEN
|
||
BEGIN
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
END;
|
||
SaveFileArea := FileArea;
|
||
FileArea := FArray[DLArray[Counter]].FArrayFileArea;
|
||
InitFileArea(FileArea);
|
||
Seek(FileInfoFile,FArray[DLArray[Counter]].FArrayDirFileRecNum);
|
||
Read(FileInfoFile,FileInfo);
|
||
TransferFlags := [IsCheckRatio];
|
||
DLX(FileInfo,FArray[DLArray[Counter]].FArrayDirFileRecNum,TransferFlags);
|
||
IF (IsKeyboardAbort IN TransferFlags) THEN
|
||
Abort := TRUE;
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
FileArea := SaveFileArea;
|
||
IF (FO) THEN
|
||
InitFileArea(FileArea);
|
||
LastDIRRecNum := SaveLastDirFileRecNum;
|
||
LastDIRFileName := SaveLastDirFileName;
|
||
END;
|
||
Inc(Counter);
|
||
END;
|
||
IF (Abort) THEN
|
||
Abort := FALSE;
|
||
NL;
|
||
END;
|
||
END;
|
||
6 : BEGIN
|
||
IF GetDLArray(DLArray,Length(CmdStr)) THEN
|
||
IF (DLInTime) THEN
|
||
BEGIN
|
||
Counter := 0;
|
||
WHILE (Counter <= 99) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
IF (DLArray[Counter] <> -1) THEN
|
||
IF (FArray[DLArray[Counter]].FArrayDirFileRecNum = -1) THEN
|
||
Print('%LF^7Invalid file number selected: "^9'+IntToStr(DLArray[Counter])+'^7".')
|
||
ELSE
|
||
BEGIN
|
||
SaveLastDirFileRecNum := LastDIRRecNum;
|
||
SaveLastDirFileName := LastDIRFileName;
|
||
FO := (FileRec(FileInfoFile).Mode <> FMClosed);
|
||
IF (FO) THEN
|
||
BEGIN
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
END;
|
||
SaveFileArea := FileArea;
|
||
FileArea := FArray[DLArray[Counter]].FArrayFileArea;
|
||
InitFileArea(FileArea);
|
||
Seek(FileInfoFile,FArray[DLArray[Counter]].FArrayDirFileRecNum);
|
||
Read(FileInfoFile,FileInfo);
|
||
TransferFlags := [IsCheckRatio,lIsAddDLBatch];
|
||
DLX(FileInfo,FArray[DLArray[Counter]].FArrayDirFileRecNum,TransferFlags);
|
||
IF (IsKeyboardAbort IN TransferFlags) THEN
|
||
Abort := TRUE;
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
FileArea := SaveFileArea;
|
||
IF (FO) THEN
|
||
InitFileArea(FileArea);
|
||
LastDIRRecNum := SaveLastDirFileRecNum;
|
||
LastDIRFileName := SaveLastDirFileName;
|
||
END;
|
||
Inc(Counter);
|
||
END;
|
||
IF (Abort) THEN
|
||
Abort := FALSE;
|
||
NL;
|
||
END;
|
||
END;
|
||
7 : BEGIN
|
||
IF GetDLArray(DLArray,Length(CmdStr)) THEN
|
||
BEGIN
|
||
Counter := 0;
|
||
WHILE (Counter <= 99) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
IF (DLArray[Counter] <> -1) THEN
|
||
IF (FArray[DLArray[Counter]].FArrayDirFileRecNum = -1) THEN
|
||
Print('%LF^7Invalid file number selected: "^9'+IntToStr(DLArray[Counter])+'^7".')
|
||
ELSE
|
||
BEGIN
|
||
SaveLastDirFileRecNum := LastDIRRecNum;
|
||
SaveLastDirFileName := LastDIRFileName;
|
||
FO := (FileRec(FileInfoFile).Mode <> FMClosed);
|
||
IF (FO) THEN
|
||
BEGIN
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
END;
|
||
SaveFileArea := FileArea;
|
||
FileArea := FArray[DLArray[Counter]].FArrayFileArea;
|
||
InitFileArea(FileArea);
|
||
Seek(FileInfoFile,FArray[DLArray[Counter]].FArrayDirFileRecNum);
|
||
Read(FileInfoFile,FileInfo);
|
||
IF (NOT ValidIntArcType(FileInfo.FileName)) THEN
|
||
Print('%LF'+SQOutSp(FileInfo.FileName)+' is not a valid archive type or not supported.')
|
||
ELSE
|
||
BEGIN
|
||
IF Exist(MemFileArea.DLPath+FileInfo.FileName) THEN
|
||
ViewInternalArchive(MemFileArea.DLPath+SQOutSp(FileInfo.FileName))
|
||
ELSE IF Exist(MemFileArea.ULPath+FileInfo.FileName) THEN
|
||
ViewInternalArchive(MemFileArea.ULPath+SQOutSp(FileInfo.FileName));
|
||
END;
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
FileArea := SaveFileArea;
|
||
IF (FO) THEN
|
||
InitFileArea(FileArea);
|
||
LastDIRRecNum := SaveLastDirFileRecNum;
|
||
LastDIRFileName := SaveLastDirFileName;
|
||
END;
|
||
Inc(Counter);
|
||
END;
|
||
IF (Abort) THEN
|
||
Abort := FALSE;
|
||
NL;
|
||
END;
|
||
END;
|
||
8 : IF (NOT FileSysop) THEN
|
||
BEGIN
|
||
NL;
|
||
Print('%LFYou do not have the required access level for this option.');
|
||
NL;
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
IF GetDLArray(DLArray,Length(CmdStr)) THEN
|
||
BEGIN
|
||
Counter := 0;
|
||
WHILE (Counter <= 99) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
IF (DLArray[Counter] <> -1) THEN
|
||
IF (FArray[DLArray[Counter]].FArrayDirFileRecNum = -1) THEN
|
||
Print('%LF^7Invalid file number selected: "^9'+IntToStr(DLArray[Counter])+'^7".')
|
||
ELSE
|
||
BEGIN
|
||
SaveLastDirFileRecNum := LastDIRRecNum;
|
||
SaveLastDirFileName := LastDIRFileName;
|
||
FO := (FileRec(FileInfoFile).Mode <> FMClosed);
|
||
IF (FO) THEN
|
||
BEGIN
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
END;
|
||
SaveFileArea := FileArea;
|
||
FileArea := FArray[DLArray[Counter]].FArrayFileArea;
|
||
InitFileArea(FileArea);
|
||
Seek(FileInfoFile,FArray[DLArray[Counter]].FArrayDirFileRecNum);
|
||
Read(FileInfoFile,FileInfo);
|
||
EditFile(FArray[DLArray[Counter]].FArrayDirFileRecNum,Cmd,FALSE,FALSE);
|
||
IF (Cmd = 'Q') THEN
|
||
Abort := TRUE
|
||
ELSE IF (Cmd = 'P') THEN
|
||
BEGIN
|
||
Counter1 := Counter;
|
||
IF (Counter1 > 0) THEN
|
||
BEGIN
|
||
IF (DLArray[Counter1] <> -1) THEN
|
||
IF (FArray[DLArray[Counter1]].FArrayDirFileRecNum <> -1) THEN
|
||
Counter := (Counter1 - 1);
|
||
Dec(Counter1);
|
||
END;
|
||
Dec(Counter);
|
||
END;
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
FileArea := SaveFileArea;
|
||
IF (FO) THEN
|
||
InitFileArea(FileArea);
|
||
LastDIRRecNum := SaveLastDirFileRecNum;
|
||
LastDIRFileName := SaveLastDirFileName;
|
||
END;
|
||
Inc(Counter);
|
||
END;
|
||
IF (Abort) THEN
|
||
Abort := FALSE;
|
||
IF (Next) THEN
|
||
Next := FALSE;
|
||
IF (Cmd <> 'Q') THEN
|
||
NL;
|
||
END;
|
||
END;
|
||
END;
|
||
UNTIL (TFilePrompt = 1) OR (Abort) OR (Next) OR (HangUp);
|
||
IF (TFilePrompt = 1) AND (NOT Abort) AND (NOT Next) AND (NOT HangUp) THEN
|
||
NL;
|
||
CurMenu := SaveMenu;
|
||
NewMenuToLoad := TRUE;
|
||
END;
|
||
|
||
FUNCTION CanSee(CONST FileInfo: FileInfoRecordType): Boolean;
|
||
BEGIN
|
||
CanSee := (NOT (FINotVal IN FileInfo.FIFlags)) OR (UserNum = FileInfo.OwnerNum) OR (AACS(General.SeeUnVal));
|
||
END;
|
||
|
||
PROCEDURE Output_File_Stuff(CONST s: AStr);
|
||
BEGIN
|
||
IF (TextRec(NewFilesF).Mode = FMOutPut)THEN
|
||
BEGIN
|
||
WriteLn(NewFilesF,StripColor(s));
|
||
Lines := 0;
|
||
END
|
||
ELSE
|
||
PrintACR(s+'^1');
|
||
END;
|
||
|
||
PROCEDURE DisplayFileAreaHeader;
|
||
BEGIN
|
||
IF (FileAreaNameDisplayed) THEN
|
||
Exit;
|
||
Lil := 0;
|
||
Lines := 0;
|
||
FileRedisplayLines := 0;
|
||
(*
|
||
CLS;
|
||
IF (NOT General.FileCreditRatio) THEN
|
||
BEGIN
|
||
Output_File_Stuff('<0B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ');
|
||
Output_File_Stuff('<0B>##<0B> File Name <0B> Size <0B> Description '+PadLeftStr(s,34)+' <0B>');
|
||
Output_File_Stuff('<0B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
Output_File_Stuff('<0B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ');
|
||
Output_File_Stuff('<0B>##<0B><0C>File Name <0B>Pts<0B> Size <0B> Description '+PadLeftStr(s,34)+' <0B>');
|
||
Output_File_Stuff('<0B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
||
END;
|
||
*)
|
||
|
||
IF (NOT General.FileCreditRatio) THEN
|
||
lRGLngStr(63,FALSE)
|
||
ELSE
|
||
lRGLngStr(64,FALSE);
|
||
Inc(Lines,LIL);
|
||
Inc(FileRedisplayLines,LIL);
|
||
|
||
FileAreaNameDisplayed := TRUE;
|
||
END;
|
||
|
||
FUNCTION GetFileStats(FileInfo: FileInfoRecordType): AStr;
|
||
BEGIN
|
||
IF (FIIsRequest IN FileInfo.FIFlags) THEN
|
||
GetFileStats := ' Offline'
|
||
ELSE IF (FIResumeLater IN FileInfo.FIFlags) THEN
|
||
GetFileStats := ' ResLatr'
|
||
ELSE IF (FINotVal IN FileInfo.FIFlags) THEN
|
||
GetFileStats := ' Unvalid'
|
||
ELSE IF (NOT General.FileCreditRatio) THEN
|
||
GetFileStats := ''+PadRightStr(ConvertBytes(FileInfo.FileSize,TRUE),10)
|
||
ELSE
|
||
GetFileStats := ''+PadRightInt(FileInfo.FilePoints,3)+' '+PadRightStr(ConvertKB(FileInfo.FileSize DIV 1024,TRUE),6);
|
||
END;
|
||
|
||
PROCEDURE lDisplay_File(FileInfo: FileInfoRecordType; FArrayRecNum: Byte; SearchString: Str20;
|
||
NormalPause: Boolean);
|
||
VAR
|
||
TempStr,
|
||
TempStr1,
|
||
TempStr2: AStr;
|
||
LineNum,
|
||
NumExtDesc: Byte;
|
||
|
||
FUNCTION SubStone(SrcStr,OldStr,NewStr: AStr; IsCaps: Boolean): AStr;
|
||
VAR
|
||
StrPos: Byte;
|
||
BEGIN
|
||
IF (OldStr <> '') THEN
|
||
BEGIN
|
||
IF (IsCaps) THEN
|
||
NewStr := AllCaps(NewStr);
|
||
StrPos := Pos(AllCaps(OldStr),AllCaps(SrcStr));
|
||
IF (StrPos > 0) THEN
|
||
BEGIN
|
||
Insert(NewStr,SrcStr,(StrPos + Length(OldStr)));
|
||
Delete(SrcStr,StrPos,Length(OldStr));
|
||
END;
|
||
END;
|
||
SubStone := SrcStr;
|
||
END;
|
||
|
||
BEGIN
|
||
TempStr := AOnOff(DayNum(PD2Date(FileInfo.FileDate)) >= DayNum(PD2Date(NewFileDate)),'*',' ')+
|
||
''+PadRightInt(FArrayRecNum,2);
|
||
|
||
TempStr1 := FileInfo.FileName;
|
||
IF (SearchString <> '') THEN
|
||
TempStr1 := SubStone(TempStr1,SearchString,''+AllCaps(SearchString)+'',TRUE);
|
||
TempStr := TempStr + ' '+TempStr1+' '+GetFileStats(FileInfo)+'';
|
||
|
||
TempStr2 := TempStr;
|
||
|
||
TempStr1 := FileInfo.Description;
|
||
IF (SearchString <> '') THEN
|
||
TempStr1 := SubStone(TempStr1,SearchString,''+AllCaps(SearchString)+'',TRUE);
|
||
IF (LennMCI(TempStr1) > 50) THEN
|
||
TempStr1 := Copy(TempStr1,1,Length(TempStr1) - (LennMCI(TempStr1) - 50));
|
||
TempStr := TempStr + ' '+TempStr1;
|
||
|
||
|
||
IF (NOT NormalPause) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
DisplayFileAreaHeader;
|
||
|
||
Inc(Lines);
|
||
|
||
IF (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
Output_File_Stuff(TempStr);
|
||
IF (NOT NormalPause) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
Pause_Files;
|
||
|
||
IF (FileInfo.VPointer <> -1) THEN
|
||
BEGIN
|
||
LoadVerbArray(FileInfo,ExtendedArray,NumExtDesc);
|
||
LineNum := 1;
|
||
WHILE (LineNum <= NumExtDesc) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
TempStr1 := ExtendedArray[LineNum];
|
||
IF (SearchString <> '') THEN
|
||
TempStr1 := SubStone(TempStr1,SearchString,''+AllCaps(SearchString)+'',TRUE);
|
||
|
||
IF (Lines = FileRedisplayLines) THEN
|
||
TempStr := TempStr2 + ' '+TempStr1+''
|
||
ELSE
|
||
TempStr := PadLeftStr('',28)+''+TempStr1+'';
|
||
|
||
IF (NOT NormalPause) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
DisplayFileAreaHeader;
|
||
|
||
Inc(Lines);
|
||
|
||
IF (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
Output_File_Stuff(TempStr);
|
||
|
||
IF (NOT NormalPause) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
Pause_Files;
|
||
Inc(LineNum);
|
||
END;
|
||
END;
|
||
|
||
TempStr := '';
|
||
IF (FAShowName IN MemFileArea.FAFlags) THEN
|
||
IF (Lines = FileRedisplayLines) THEN
|
||
TempStr := TempStr2 + ' Uploaded by '+Caps(FileInfo.OwnerName)
|
||
ELSE
|
||
TempStr := TempStr + PadLeftStr('',28)+'Uploaded by '+Caps(FileInfo.OwnerName);
|
||
|
||
IF (FAShowDate IN MemFileArea.FAFlags) THEN
|
||
BEGIN
|
||
IF (TempStr = '') THEN
|
||
IF (Lines = FileRedisplayLines) THEN
|
||
TempStr := TempStr2 + ' Uploaded'
|
||
ELSE
|
||
TempStr := PadLeftStr('',28)+'Uploaded';
|
||
TempStr := TempStr +' on '+PD2Date(FileInfo.FileDate);
|
||
IF (Length(TempStr) > 78) THEN
|
||
TempStr := Copy(TempStr,1,78);
|
||
END;
|
||
|
||
IF (FAShowName IN MemFileArea.FAFlags) OR (FAShowDate IN MemFileArea.FAFlags) THEN
|
||
BEGIN
|
||
|
||
IF (NOT NormalPause) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
DisplayFileAreaHeader;
|
||
|
||
Inc(Lines);
|
||
|
||
IF (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
Output_File_Stuff(TempStr);
|
||
IF (NOT NormalPause) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
Pause_Files;
|
||
END;
|
||
|
||
IF (FIResumeLater IN FileInfo.FIFlags) AND (FileInfo.OwnerNum = UserNum) AND NOT (TextRec(NewFilesF).Mode = FMOutPut) THEN
|
||
BEGIN
|
||
IF (Lines = FileRedisplayLines) THEN
|
||
TempStr := TempStr2 + ' ^8>^7'+'>> ^3'+'You ^5'+'MUST RESUME^3'+' this file to receive credit'
|
||
ELSE
|
||
TempStr := PadLeftStr('',28)+'^8>^7'+'>> ^3'+'You ^5'+'MUST RESUME^3'+' this file to receive credit';
|
||
|
||
IF (NOT NormalPause) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
DisplayFileAreaHeader;
|
||
|
||
Inc(Lines);
|
||
|
||
IF (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
Output_File_Stuff(TempStr);
|
||
IF (NOT NormalPause) AND (NOT Next) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
Pause_Files;
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE SearchFileAreaSpec(FArea: Integer; FName: Str12; VAR FArrayRecNum: Byte);
|
||
VAR
|
||
DirFileRecNum: Integer;
|
||
Found: Boolean;
|
||
BEGIN
|
||
IF (FileArea <> FArea) THEN
|
||
ChangeFileArea(FArea);
|
||
IF (FileArea = FArea) THEN
|
||
BEGIN
|
||
RecNo(FileInfo,FName,DirFileRecNum);
|
||
IF (BadDownloadPath) THEN
|
||
Exit;
|
||
Found := FALSE;
|
||
LIL := 0;
|
||
CLS;
|
||
Prompt('^1Scanning ^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 (CanSee(FileInfo)) THEN
|
||
BEGIN
|
||
|
||
WITH FArray[FArrayRecNum] DO
|
||
BEGIN
|
||
FArrayFileArea := FileArea;
|
||
FArrayDirFileRecNum := DirFileRecNum;
|
||
END;
|
||
|
||
DisplayFileAreaHeader;
|
||
lDisplay_File(FileInfo,FArrayRecNum,'',FALSE);
|
||
|
||
Inc(FArrayRecNum);
|
||
IF (FArrayRecNum = 100) THEN
|
||
FArrayRecNum := 0;
|
||
|
||
Found := TRUE;
|
||
END;
|
||
NRecNo(FileInfo,DirFileRecNum);
|
||
IF (DirFileRecNum = -1) AND (Found) AND (Lines > FileRedisplayLines) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
BEGIN
|
||
Lines := PageLength;
|
||
Pause_Files;
|
||
END;
|
||
END;
|
||
IF (NOT Found) THEN
|
||
BEGIN
|
||
LIL := 0;
|
||
BackErase(15 + LennMCI(MemFileArea.AreaName) + Length(IntToStr(CompFileArea(FArea,0))));
|
||
END;
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE SearchFileSpec;
|
||
VAR
|
||
FName: Str12;
|
||
FArrayRecNum: Byte;
|
||
FArea,
|
||
SaveFileArea: Integer;
|
||
SaveConfSystem: Boolean;
|
||
BEGIN
|
||
NL;
|
||
{ Print(FString.SearchLine); }
|
||
lRGLngStr(20,FALSE);
|
||
{ Print(FString.lGFNLine1); }
|
||
lRGLngStr(28,FALSE);
|
||
{ Prt(FString.GFNLine2); }
|
||
lRGLngStr(29,FALSE);
|
||
FName := '';
|
||
GetFileName(FName);
|
||
IF (FName = '') THEN
|
||
BEGIN
|
||
Print('%LFAborted.');
|
||
Exit;
|
||
END;
|
||
SaveFileArea := FileArea;
|
||
Abort := FALSE;
|
||
Next := FALSE;
|
||
InitFArray(FArray);
|
||
FArrayRecNum := 0;
|
||
SaveConfSystem := ConfSystem;
|
||
ConfSystem := NOT PYNQ('%LFSearch all conferences? ',0,TRUE);
|
||
IF (ConfSystem <> SaveConfSystem) THEN
|
||
NewCompTables;
|
||
FArea := 1;
|
||
WHILE (FArea >= 1) AND (FArea <= NumFileAreas) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
SearchFileAreaSpec(FArea,FName,FArrayRecNum);
|
||
WKey;
|
||
Inc(FArea);
|
||
END;
|
||
IF (ConfSystem <> SaveConfSystem) THEN
|
||
BEGIN
|
||
ConfSystem := SaveConfSystem;
|
||
NewCompTables;
|
||
END;
|
||
FileArea := SaveFileArea;
|
||
LoadFileArea(FileArea);
|
||
END;
|
||
|
||
PROCEDURE ListFileSpec(FName: Str12);
|
||
VAR
|
||
FArrayRecNum: Byte;
|
||
BEGIN
|
||
Abort := FALSE;
|
||
Next := FALSE;
|
||
InitFArray(FArray);
|
||
FArrayRecNum := 0;
|
||
IF (FName = '') THEN
|
||
BEGIN
|
||
NL;
|
||
{ Print(FString.ListLine); }
|
||
lRGLngStr(18,FALSE);
|
||
{ Print(FString.lGFNLine1); }
|
||
lRGLngStr(28,FALSE);
|
||
{ Prt(FString.GFNLine2); }
|
||
lRGLngStr(29,FALSE);
|
||
GetFileName(FName);
|
||
END
|
||
ELSE
|
||
FName := Align(FName);
|
||
SearchFileAreaSpec(FileArea,FName,FArrayRecNum);
|
||
END;
|
||
|
||
PROCEDURE SearchFileAreaDescription(FArea: Integer; SearchString: Str20; VAR FArrayRecNum: Byte);
|
||
VAR
|
||
LineNum,
|
||
NumExtDesc: Byte;
|
||
DirFileRecNum: Integer;
|
||
SearchStringFound,
|
||
Found: Boolean;
|
||
BEGIN
|
||
IF (FileArea <> FArea) THEN
|
||
ChangeFileArea(FArea);
|
||
IF (FileArea = FArea) THEN
|
||
BEGIN
|
||
RecNo(FileInfo,'*.*',DirFileRecNum);
|
||
IF (BadDownloadPath) THEN
|
||
Exit;
|
||
Found := FALSE;
|
||
LIL := 0;
|
||
CLS;
|
||
Prompt('^1Scanning ^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 (CanSee(FileInfo)) THEN
|
||
BEGIN
|
||
SearchStringFound := ((Pos(SearchString,AllCaps(FileInfo.Description)) <> 0) OR
|
||
(Pos(SearchString,AllCaps(FileInfo.FileName)) <> 0));
|
||
IF (NOT SearchStringFound) AND (FileInfo.VPointer <> -1) THEN
|
||
BEGIN
|
||
LoadVerbArray(FileInfo,ExtendedArray,NumExtDesc);
|
||
LineNum := 1;
|
||
WHILE (LineNum <= NumExtDesc) AND (NOT SearchStringFound) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
IF (Pos(SearchString,AllCaps(ExtendedArray[LineNum])) <> 0) THEN
|
||
SearchStringFound := TRUE;
|
||
Inc(LineNum);
|
||
END;
|
||
END;
|
||
IF (SearchStringFound) THEN
|
||
BEGIN
|
||
|
||
WITH FArray[FArrayRecNum] DO
|
||
BEGIN
|
||
FArrayFileArea := FileArea;
|
||
FArrayDirFileRecNum := DirFileRecNum;
|
||
END;
|
||
|
||
DisplayFileAreaHeader;
|
||
|
||
lDisplay_File(FileInfo,FArrayRecNum,SearchString,FALSE);
|
||
|
||
Inc(FArrayRecNum);
|
||
IF (FArrayRecNum = 100) THEN
|
||
FArrayRecNum := 0;
|
||
|
||
Found := TRUE;
|
||
END;
|
||
END;
|
||
NRecNo(FileInfo,DirFileRecNum);
|
||
IF (DirFileRecNum = -1) AND (Found) AND (Lines > FileRedisplayLines) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
BEGIN
|
||
Lines := PageLength;
|
||
Pause_Files;
|
||
END;
|
||
END;
|
||
IF (NOT Found) THEN
|
||
BEGIN
|
||
LIL := 0;
|
||
BackErase(15 + LennMCI(MemFileArea.AreaName) + Length(IntToStr(CompFileArea(FArea,0))));
|
||
END;
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE SearchFileDescriptions;
|
||
VAR
|
||
SearchString: Str20;
|
||
FArrayRecNum: Byte;
|
||
FArea,
|
||
SaveFileArea: Integer;
|
||
SaveConfSystem: Boolean;
|
||
BEGIN
|
||
NL;
|
||
{ Print(FString.FindLine1); }
|
||
lRGLngStr(21,FALSE);
|
||
NL;
|
||
{ Print(FString.FindLine2); }
|
||
lRGLngStr(22,FALSE);
|
||
Prt(': ');
|
||
MPL(20);
|
||
Input(SearchString,20);
|
||
IF (SearchString = '') THEN
|
||
BEGIN
|
||
Print('%LFAborted.');
|
||
Exit;
|
||
END;
|
||
Abort := FALSE;
|
||
Next := FALSE;
|
||
InitFArray(FArray);
|
||
FArrayRecNum := 0;
|
||
Print('%LFSearching for "'+SearchString+'"');
|
||
IF (NOT PYNQ('%LFSearch all file areas? ',0,FALSE)) THEN
|
||
SearchFileAreaDescription(FileArea,SearchString,FArrayRecNum)
|
||
ELSE
|
||
BEGIN
|
||
SaveFileArea := FileArea;
|
||
SaveConfSystem := ConfSystem;
|
||
ConfSystem := NOT PYNQ('%LFSearch all conferences? ',0,TRUE);
|
||
IF (ConfSystem <> SaveConfSystem) THEN
|
||
NewCompTables;
|
||
FArea := 1;
|
||
WHILE (FArea >= 1) AND (FArea <= NumFileAreas) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
SearchFileAreaDescription(FArea,SearchString,FArrayRecNum);
|
||
WKey;
|
||
Inc(FArea);
|
||
END;
|
||
IF (ConfSystem <> SaveConfSystem) THEN
|
||
BEGIN
|
||
ConfSystem := SaveConfSystem;
|
||
NewCompTables;
|
||
END;
|
||
FileArea := SaveFileArea;
|
||
LoadFileArea(FileArea);
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE NewFileScan(FArea: Integer; Global: Boolean; VAR FArrayRecNum: Byte);
|
||
VAR
|
||
DirFileRecNum: Integer;
|
||
Found: Boolean;
|
||
BEGIN
|
||
IF (FileArea <> FArea) THEN
|
||
ChangeFileArea(FArea);
|
||
IF (FileArea = FArea) THEN
|
||
BEGIN
|
||
RecNo(FileInfo,'*.*',DirFileRecNum);
|
||
IF (BadDownloadPath) THEN
|
||
Exit;
|
||
IF (NOT Global) OR (NewScanFileArea) THEN
|
||
BEGIN
|
||
Found := FALSE;
|
||
LIL := 0;
|
||
CLS;
|
||
Prompt('^1Scanning ^5'+MemFileArea.AreaName+' #'+IntToStr(CompFileArea(FileArea,0))+'^1 ...');
|
||
WHILE (DirFileRecNum <> -1) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
|
||
Seek(FileInfoFile,DirFileRecNum);
|
||
Read(FileInfoFile,FileInfo);
|
||
|
||
IF ((CanSee(FileInfo)) AND (DayNum(PD2Date(FileInfo.FileDate)) >= DayNum(PD2Date(NewFileDate))))
|
||
OR (CanSee(FileInfo) AND (FINotVal IN FileInfo.FIFlags)) THEN
|
||
BEGIN
|
||
|
||
WITH FArray[FArrayRecNum] DO
|
||
BEGIN
|
||
FArrayFileArea := FileArea;
|
||
FArrayDirFileRecNum := DirFileRecNum;
|
||
END;
|
||
|
||
DisplayFileAreaHeader;
|
||
lDisplay_File(FileInfo,FArrayRecNum,'',FALSE);
|
||
|
||
Inc(FArrayRecNum);
|
||
IF (FArrayRecNum = 100) THEN
|
||
FArrayRecNum := 0;
|
||
|
||
Found := TRUE;
|
||
END;
|
||
NRecNo(FileInfo,DirFileRecNum);
|
||
IF (DirFileRecNum = -1) AND (Found) AND (Lines > FileRedisplayLines) AND (NOT Abort) AND (NOT HangUp) THEN
|
||
BEGIN
|
||
Lines := PageLength;
|
||
Pause_Files;
|
||
END;
|
||
END;
|
||
IF (NOT Found) THEN
|
||
BEGIN
|
||
LIL := 0;
|
||
BackErase(15 + LennMCI(MemFileArea.AreaName) + Length(IntToStr(CompFileArea(FArea,0))));
|
||
END;
|
||
END;
|
||
Close(FileInfoFile);
|
||
Close(ExtInfoFile);
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE GlobalNewFileScan(VAR FArrayRecNum: Byte);
|
||
VAR
|
||
FArea: Integer;
|
||
BEGIN
|
||
FArea := 1;
|
||
WHILE (FArea >= 1) AND (FArea <= NumFileAreas) AND (NOT Abort) AND (NOT HangUp) DO
|
||
BEGIN
|
||
NewFileScan(FArea,TRUE,FArrayRecNum);
|
||
IF (TextRec(NewFilesF).Mode = FMOutPut) THEN
|
||
Output_File_Stuff('');
|
||
WKey;
|
||
Inc(FArea);
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE NewFilesScanSearchType(CONST MenuOption: Str50);
|
||
VAR
|
||
FArrayRecNum: Byte;
|
||
SaveFileArea: Integer;
|
||
BEGIN
|
||
SaveFileArea := FileArea;
|
||
Abort := FALSE;
|
||
Next := FALSE;
|
||
InitFArray(FArray);
|
||
FArrayRecNum := 0;
|
||
IF (UpCase(MenuOption[1]) = 'C') THEN
|
||
NewFileScan(FileArea,FALSE,FArrayRecNum)
|
||
ELSE IF (UpCase(MenuOption[1]) = 'G') THEN
|
||
GlobalNewFileScan(FArrayRecNum)
|
||
ELSE IF (StrToInt(MenuOption) <> 0) THEN
|
||
NewFileScan(StrToInt(MenuOption),FALSE,FArrayRecNum)
|
||
ELSE
|
||
BEGIN
|
||
{
|
||
NL;
|
||
Print('|03List Files - |11P |03to Pause');
|
||
NL;
|
||
}
|
||
lRGLngStr(19,FALSE);
|
||
|
||
IF PYNQ('%LFSearch all file areas? ',0,FALSE) THEN
|
||
GlobalNewFileScan(FArrayRecNum)
|
||
ELSE
|
||
NewFileScan(FileArea,FALSE,FArrayRecNum);
|
||
END;
|
||
FileArea := SaveFileArea;
|
||
LoadFileArea(FileArea);
|
||
END;
|
||
|
||
PROCEDURE FileAreaChange(VAR Done: Boolean; CONST MenuOption: Str50);
|
||
VAR
|
||
InputStr: Str5;
|
||
Cmd: Char;
|
||
FArea,
|
||
SaveFArea,
|
||
NumFAreas: Integer;
|
||
SaveTempPause: Boolean;
|
||
BEGIN
|
||
IF (MenuOption <> '') THEN
|
||
CASE Upcase(MenuOption[1]) OF
|
||
'+' : BEGIN
|
||
FArea := FileArea;
|
||
IF (FileArea >= NumFileAreas) THEN
|
||
FArea := 0
|
||
ELSE
|
||
REPEAT
|
||
Inc(FArea);
|
||
ChangeFileArea(FArea);
|
||
UNTIL ((FileArea = FArea) OR (FArea >= NumFileAreas));
|
||
IF (FileArea <> FArea) THEN
|
||
BEGIN
|
||
{
|
||
%LFHighest accessible file area.
|
||
%PA
|
||
}
|
||
LRGLngStr(83,FALSE);
|
||
END
|
||
ELSE
|
||
LastCommandOvr := TRUE;
|
||
END;
|
||
'-' : BEGIN
|
||
FArea := FileArea;
|
||
IF (FileArea <= 0) THEN
|
||
FArea := 0
|
||
ELSE
|
||
REPEAT
|
||
Dec(FArea);
|
||
ChangeFileArea(FArea);
|
||
UNTIL ((FileArea = FArea) OR (FArea <= 0));
|
||
IF (FileArea <> FArea) THEN
|
||
BEGIN
|
||
{
|
||
%LFLowest accessible file area.
|
||
%PA
|
||
}
|
||
LRGLngStr(82,FALSE);
|
||
END
|
||
ELSE
|
||
LastCommandOvr := TRUE;
|
||
END;
|
||
'L' : BEGIN
|
||
SaveTempPause := TempPause;
|
||
TempPause := FALSE;
|
||
FArea := 1;
|
||
NumFAreas := 0;
|
||
Cmd := '?';
|
||
REPEAT
|
||
SaveFArea := FArea;
|
||
IF (Cmd = '?') THEN
|
||
LFileAreaList(FArea,NumFAreas,5,FALSE);
|
||
{
|
||
%LFFile area list? [^5#^4,^5?^4=^5Help^4,^5Q^4=^5Quit^4]: @
|
||
}
|
||
LOneK(LRGLngStr(70,TRUE),Cmd,'Q[]?',TRUE,TRUE);
|
||
TempPause := FALSE;
|
||
IF (Cmd <> 'Q') THEN
|
||
BEGIN
|
||
IF (Cmd = '[') THEN
|
||
BEGIN
|
||
Farea := (SaveFArea - ((PageLength - 5) * 2));
|
||
IF (FArea < 1) THEN
|
||
FArea := 1;
|
||
Cmd := '?';
|
||
END
|
||
ELSE IF (Cmd = ']') THEN
|
||
BEGIN
|
||
IF (FArea > NumFileAreas) THEN
|
||
FArea := SaveFArea;
|
||
Cmd := '?';
|
||
END
|
||
ELSE IF (Cmd = '?') THEN
|
||
BEGIN
|
||
{
|
||
$File_Message_Area_List_Help
|
||
%LF^1(^3###^1)Manual entry selection ^1(^3<CR>^1)Select current entry
|
||
^1(^3<Home>^1)First entry on page ^1(^3<End>^1)Last entry on page
|
||
^1(^3Left Arrow^1)Previous entry ^1(^3Right Arrow^1)Next entry
|
||
^1(^3Up Arrow^1)Move up ^1(^3Down Arrow^1)Move down
|
||
^1(^3[^1)Previous page ^1(^3]^1)Next page
|
||
%PA
|
||
}
|
||
LRGLngStr(71,FALSE);
|
||
FArea := SaveFArea;
|
||
END
|
||
END;
|
||
UNTIL (Cmd = 'Q') OR (HangUp);
|
||
TempPause := SaveTempPause;
|
||
LastCommandOvr := TRUE;
|
||
END;
|
||
ELSE
|
||
BEGIN
|
||
IF (StrToInt(MenuOption) > 0) THEN
|
||
BEGIN
|
||
FArea := StrToInt(MenuOption);
|
||
IF (FArea <> FileArea) THEN
|
||
ChangeFileArea(FArea);
|
||
IF (Pos(';',MenuOption) > 0) THEN
|
||
BEGIN
|
||
CurMenu := StrToInt(Copy(MenuOption,(Pos(';',MenuOption) + 1),Length(MenuOption)));
|
||
NewMenuToLoad := TRUE;
|
||
Done := TRUE;
|
||
END;
|
||
LastCommandOvr := TRUE;
|
||
END;
|
||
END;
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
SaveTempPause := TempPause;
|
||
TempPause := FALSE;
|
||
FArea := 1;
|
||
NumFAreas := 0;
|
||
|
||
LightBarCmd := 1;
|
||
LightBarFirstCmd := TRUE;
|
||
|
||
InputStr := '?';
|
||
REPEAT
|
||
SaveFArea := FArea;
|
||
IF (InputStr = '?') THEN
|
||
lFileAreaList(FArea,NumFAreas,5,FALSE);
|
||
{
|
||
%LFChange file area? [^5#^4,^5?^4=^5Help^4,^5Q^4=^5Quit^4]: @
|
||
}
|
||
FileAreaScanInput(LRGLngStr(72,TRUE),Length(IntToStr(HighFileArea)),InputStr,'Q[]?',LowFileArea,HighFileArea);
|
||
IF (InputStr <> 'Q') THEN
|
||
BEGIN
|
||
IF (InputStr = '[') THEN
|
||
BEGIN
|
||
Farea := (SaveFArea - ((PageLength - 5) * 2));
|
||
IF (FArea < 1) THEN
|
||
FArea := 1;
|
||
InputStr := '?';
|
||
END
|
||
ELSE IF (InputStr = ']') THEN
|
||
BEGIN
|
||
IF (FArea > NumFileAreas) THEN
|
||
FArea := SaveFArea;
|
||
InputStr := '?';
|
||
END
|
||
ELSE IF (InputStr = '?') THEN
|
||
BEGIN
|
||
{
|
||
$File_Message_Area_List_Help
|
||
%LF^1(^3###^1)Manual entry selection ^1(^3<CR>^1)Select current entry
|
||
^1(^3<Home>^1)First entry on page ^1(^3<End>^1)Last entry on page
|
||
^1(^3Left Arrow^1)Previous entry ^1(^3Right Arrow^1)Next entry
|
||
^1(^3Up Arrow^1)Move up ^1(^3Down Arrow^1)Move down
|
||
^1(^3[^1)Previous page ^1(^3]^1)Next page
|
||
%PA
|
||
}
|
||
LRGLngStr(71,FALSE);
|
||
FArea := SaveFArea;
|
||
END
|
||
ELSE IF (StrToInt(InputStr) < LowFileArea) OR (StrToInt(InputStr) > HighFileArea) THEN
|
||
BEGIN
|
||
{
|
||
%LF^7The range must be from %A1 to %A2!^1
|
||
}
|
||
LRGLngStr(78,FALSE);
|
||
FArea := SaveFArea;
|
||
InputStr := '?';
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
FArea := CompFileArea(StrToInt(InputStr),1);
|
||
IF (FArea <> FileArea) THEN
|
||
ChangeFileArea(FArea);
|
||
IF (FArea = FileArea) THEN
|
||
InputStr := 'Q'
|
||
ELSE
|
||
BEGIN
|
||
{
|
||
%LF^7You do not have access to this file area!^1
|
||
}
|
||
LRGLngStr(80,FALSE);
|
||
FArea := SaveFArea;
|
||
InputStr := '?';
|
||
END;
|
||
END;
|
||
END;
|
||
UNTIL (InputStr = 'Q') OR (HangUp);
|
||
TempPause := SaveTempPause;
|
||
LastCommandOvr := TRUE;
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE CreateTempDir;
|
||
VAR
|
||
TempPath: Str40;
|
||
Changed: Boolean;
|
||
BEGIN
|
||
TempPath := '';
|
||
InputPath('%LF^4Enter file path for temporary directory (^5End with a ^4"^5\^4"):%LF^4:',TempPath,TRUE,TRUE,Changed);
|
||
IF (TempPath = '') THEN
|
||
BEGIN
|
||
Print('%LFAborted.');
|
||
Exit;
|
||
END;
|
||
IF (NOT ExistDir(TempPath)) THEN
|
||
BEGIN
|
||
Print('%LFThat directory does not exist.');
|
||
Exit;
|
||
END;
|
||
FillChar(TempMemFileArea,SizeOf(TempMemFileArea),0);
|
||
WITH TempMemFileArea DO
|
||
BEGIN
|
||
AreaName := '<< Temporary >>';
|
||
FileName := 'TEMPFILE';
|
||
DLPath := TempPath;
|
||
ULPath := TempPath;
|
||
MaxFiles := 2000;
|
||
Password := '';
|
||
ArcType := 1;
|
||
CmtType := 1;
|
||
ACS := 's'+IntToStr(ThisUser.SL)+'d'+IntToStr(ThisUser.DSL);
|
||
ULACS := ACS;
|
||
DLACS := ACS;
|
||
FAFlags := [];
|
||
END;
|
||
FileArea := (NumFileAreas + 1);
|
||
LoadFileArea(FileArea);
|
||
SysOpLog('Created temporary directory #'+IntToStr(FileArea)+' in "'+TempPath+'"');
|
||
END;
|
||
|
||
END.
|