168 lines
14 KiB
ObjectPascal
168 lines
14 KiB
ObjectPascal
|
Unit bbs_cfg_FileBase;
|
||
|
|
||
|
{$I M_OPS.PAS}
|
||
|
|
||
|
Interface
|
||
|
|
||
|
Procedure File_Base_Editor;
|
||
|
|
||
|
Implementation
|
||
|
|
||
|
Uses
|
||
|
m_FileIO,
|
||
|
m_Strings,
|
||
|
bbs_Common,
|
||
|
bbs_Core,
|
||
|
bbs_User;
|
||
|
|
||
|
Procedure File_Base_Editor;
|
||
|
Const
|
||
|
ST : Array[0..2] of String[6] = ('No', 'Yes', 'Always');
|
||
|
Var
|
||
|
A,
|
||
|
B : LongInt;
|
||
|
Begin
|
||
|
Session.SystemLog ('*FBASE EDITOR*');
|
||
|
Reset(Session.FileBase.FBaseFile);
|
||
|
|
||
|
Repeat
|
||
|
Session.io.AllowPause := True;
|
||
|
|
||
|
Session.io.OutFullLn ('|CL|14File Base Editor|CR|CR|09### Name|CR--- |$D40-');
|
||
|
|
||
|
Reset (Session.FileBase.FBaseFile);
|
||
|
While Not Eof(Session.FileBase.FBaseFile) Do Begin
|
||
|
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
Session.io.OutFullLn ('|15' + strPadR(strI2S(FilePos(Session.FileBase.FBaseFile)), 3, ' ') + ' |14|FB');
|
||
|
|
||
|
If (Session.io.PausePtr = Session.User.ThisUser.ScreenSize) and (Session.io.AllowPause) Then
|
||
|
Case Session.io.MorePrompt of
|
||
|
'N' : Break;
|
||
|
'C' : Session.io.AllowPause := False;
|
||
|
End;
|
||
|
End;
|
||
|
|
||
|
Session.io.OutFull ('|CR|09(I)nsert, (D)elete, (E)dit, (M)ove, (Q)uit? ');
|
||
|
Case Session.io.OneKey (#13'DEIMQ', True) of
|
||
|
'D' : begin
|
||
|
Session.io.OutRaw ('Delete which base? ');
|
||
|
a := strS2I(Session.io.GetInput(3, 3, 11, ''));
|
||
|
If (A > 0) and (A <= FileSize(Session.FileBase.FBaseFile)) Then Begin
|
||
|
Seek (Session.FileBase.FBaseFile, A - 1);
|
||
|
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
FileErase (config.datapath + Session.FileBase.FBase.filename + '.dir');
|
||
|
FileErase (config.datapath + Session.FileBase.FBase.filename + '.des');
|
||
|
FileErase (config.datapath + Session.FileBase.FBase.filename + '.scn');
|
||
|
KillRecord (Session.FileBase.FBaseFile, A, SizeOf(FBaseRec));
|
||
|
End;
|
||
|
End;
|
||
|
'I' : begin
|
||
|
Session.io.OutRaw ('Insert before which? (1-' + strI2S(filesize(Session.FileBase.FBaseFile)+1) + '): ');
|
||
|
a := strS2I(Session.io.GetInput(3, 3, 11, ''));
|
||
|
if (a > 0) and (a <= filesize(Session.FileBase.FBaseFile)+1) then begin
|
||
|
AddRecord (Session.FileBase.FBaseFile, A, SizeOf(Session.FileBase.FBaseFile));
|
||
|
|
||
|
Session.FileBase.FBase.Name := 'New File Base';
|
||
|
Session.FileBase.FBase.FtpName := 'New_File_Base';
|
||
|
Session.FileBase.FBase.Filename := 'NEW';
|
||
|
Session.FileBase.FBase.Dispfile := '';
|
||
|
Session.FileBase.FBase.ListACS := 's255';
|
||
|
Session.FileBase.FBase.FtpACS := 's255';
|
||
|
Session.FileBase.FBase.SysopACS := 's255';
|
||
|
Session.FileBase.FBase.UlACS := 's255';
|
||
|
Session.FileBase.FBase.DlACS := 's255';
|
||
|
Session.FileBase.FBase.Path := '';
|
||
|
Session.FileBase.FBase.Password := '';
|
||
|
Session.FileBase.FBase.ShowUL := True;
|
||
|
Session.FileBase.FBase.IsCDROM := False;
|
||
|
Session.FileBase.FBase.DefScan := 1;
|
||
|
|
||
|
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
end;
|
||
|
end;
|
||
|
'E' : begin
|
||
|
Session.io.OutRaw ('Edit which? ');
|
||
|
a := strS2I(Session.io.GetInput(3, 3, 11, ''));
|
||
|
if (a > 0) and (a <= filesize(Session.FileBase.FBaseFile)) then begin
|
||
|
seek (Session.FileBase.FBaseFile, a-1);
|
||
|
read (Session.FileBase.FBaseFile, Session.FileBase.fbase);
|
||
|
repeat
|
||
|
Session.io.OutFullLn ('|CL|14File Base ' + strI2S(FilePos(Session.FileBase.FBaseFile)) + ' of ' + strI2S(FileSize(Session.FileBase.FBaseFile)) + '|CR|03');
|
||
|
Session.io.OutRawln ('A. Name : ' + Session.FileBase.FBase.name);
|
||
|
Session.io.OutRawln ('B. Filename : ' + Session.FileBase.FBase.filename);
|
||
|
Session.io.OutRawln ('C. Display File : ' + Session.FileBase.FBase.dispfile);
|
||
|
Session.io.OutRawln ('D. List ACS : ' + Session.FileBase.FBase.Listacs);
|
||
|
Session.io.OutRawln ('E. Sysop ACS : ' + Session.FileBase.FBase.SysopACS);
|
||
|
Session.io.OutRawln ('F. Upload ACS : ' + Session.FileBase.FBase.ulacs);
|
||
|
Session.io.OutRawln ('G. Download ACS : ' + Session.FileBase.FBase.dlacs);
|
||
|
Session.io.OutRawln ('H. Storage Path : ' + Session.FileBase.FBase.path);
|
||
|
Session.io.OutRawln ('I. Password : ' + Session.FileBase.FBase.password);
|
||
|
Session.io.OutRawln ('J. Show Uploader : ' + Session.io.OutYN(Session.FileBase.FBase.ShowUL));
|
||
|
Session.io.OutRawLn ('K. Default New Scan : ' + ST[Session.FileBase.FBase.DefScan]);
|
||
|
Session.io.OutRawLn ('L. CD-ROM Area : ' + Session.io.OutYN(Session.FileBase.FBase.IsCDROM));
|
||
|
Session.io.OutRawLn ('M. All Files Free : ' + Session.io.OutYN(Session.FileBase.FBase.IsFREE));
|
||
|
Session.io.OutRawLn ('N. FTP Base Name : ' + Session.FileBase.FBase.FTPName);
|
||
|
Session.io.OutRawLn ('O. FTP List ACS : ' + Session.FileBase.FBase.FTPACS);
|
||
|
Session.io.OutFull ('|CR|09([) Prev, (]) Next, (Q)uit: ');
|
||
|
case Session.io.OneKey('[]ABCDEFGHIJKLMNOQ', True) of
|
||
|
'[' : If FilePos(Session.FileBase.FBaseFile) > 1 Then Begin
|
||
|
Seek (Session.FileBase.FBaseFile, FilePos(Session.FileBase.FBaseFile)-1);
|
||
|
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
Seek (Session.FileBase.FBaseFile, FilePos(Session.FileBase.FBaseFile)-2);
|
||
|
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
End;
|
||
|
']' : If FilePos(Session.FileBase.FBaseFile) < FileSize(Session.FileBase.FBaseFile) Then Begin
|
||
|
Seek (Session.FileBase.FBaseFile, FilePos(Session.FileBase.FBaseFile)-1);
|
||
|
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
End;
|
||
|
'A' : Session.FileBase.FBase.Name := Session.io.InXY(23, 3, 40, 40, 11, Session.FileBase.FBase.Name);
|
||
|
'B' : Session.FileBase.FBase.FileName := Session.io.InXY(23, 4, 40, 40, 11, Session.FileBase.FBase.FileName);
|
||
|
'C' : Session.FileBase.FBase.DispFile := Session.io.InXY(23, 5, 8, 8, 11, Session.FileBase.FBase.DispFile);
|
||
|
'D' : Session.FileBase.FBase.ListACS := Session.io.InXY(23, 6, 20, 20, 11, Session.FileBase.FBase.ListACS);
|
||
|
'E' : Session.FileBase.FBase.SysopACS := Session.io.InXY(23, 7, 20, 20, 11, Session.FileBase.FBase.SysopACS);
|
||
|
'F' : Session.FileBase.FBase.ULacs := Session.io.InXY(23, 8, 20, 20, 11, Session.FileBase.FBase.ULacs);
|
||
|
'G' : Session.FileBase.FBase.DLacs := Session.io.InXY(23, 9, 20, 20, 11, Session.FileBase.FBase.DLacs);
|
||
|
'H' : Session.FileBase.FBase.Path := CheckPath(Session.io.InXY(23, 10, 39, 39, 11, Session.FileBase.FBase.Path));
|
||
|
'I' : Session.FileBase.FBase.Password := Session.io.InXY(23, 11, 15, 15, 12, Session.FileBase.FBase.Password);
|
||
|
'J' : Session.FileBase.FBase.ShowUL := Not Session.FileBase.FBase.ShowUL;
|
||
|
'K' : If Session.FileBase.FBase.DefScan > 1 Then Session.FileBase.FBase.DefScan := 0 Else Inc(Session.FileBase.FBase.DefScan);
|
||
|
'L' : Session.FileBase.FBase.IsCDROM := Not Session.FileBase.FBase.IsCDROM;
|
||
|
'M' : Session.FileBase.FBase.IsFREE := Not Session.FileBase.FBase.IsFREE;
|
||
|
'N' : Session.FileBase.FBase.FtpName := Session.io.InXY(23, 16, 40, 60, 11, Session.FileBase.FBase.FtpName);
|
||
|
'O' : Session.FileBase.FBase.FtpACS := Session.io.InXY(23, 17, 30, 30, 11, Session.FileBase.FBase.FtpACS);
|
||
|
'Q' : Break;
|
||
|
End;
|
||
|
Until False;
|
||
|
Seek (Session.FileBase.FBaseFile, FilePos(Session.FileBase.FBaseFile) - 1);
|
||
|
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
End;
|
||
|
End;
|
||
|
|
||
|
'M' : Begin
|
||
|
Session.io.OutRaw ('Move which? ');
|
||
|
A := strS2I(Session.io.GetInput(3, 3, 12, ''));
|
||
|
|
||
|
Session.io.OutRaw ('Move before? (1-' + strI2S(FileSize(Session.FileBase.FBaseFile) + 1) + '): ');
|
||
|
B := strS2I(Session.io.GetInput(3, 3, 12, ''));
|
||
|
|
||
|
If (A > 0) and (A <= FileSize(Session.FileBase.FBaseFile)) and (B > 0) and (B <= FileSize(Session.FileBase.FBaseFile) + 1) Then Begin
|
||
|
Seek (Session.FileBase.FBaseFile, A - 1);
|
||
|
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
|
||
|
AddRecord (Session.FileBase.FBaseFile, B, SizeOf(FBaseRec));
|
||
|
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||
|
|
||
|
If A > B Then Inc(A);
|
||
|
|
||
|
KillRecord (Session.FileBase.FBaseFile, A, SizeOf(FBaseRec));
|
||
|
End;
|
||
|
End;
|
||
|
'Q' : Break;
|
||
|
End;
|
||
|
Until False;
|
||
|
Close (Session.FileBase.FBaseFile);
|
||
|
End;
|
||
|
|
||
|
End.
|