2012-02-13 16:50:48 -08:00
|
|
|
|
Unit bbs_cfg_MsgBase;
|
|
|
|
|
|
|
|
|
|
{$I M_OPS.PAS}
|
|
|
|
|
|
|
|
|
|
Interface
|
|
|
|
|
|
2013-03-17 04:01:46 -07:00
|
|
|
|
Function Configuration_MessageBaseEditor (Edit: Boolean) : LongInt;
|
2012-02-13 16:50:48 -08:00
|
|
|
|
|
|
|
|
|
Implementation
|
|
|
|
|
|
|
|
|
|
Uses
|
2013-02-16 21:31:57 -08:00
|
|
|
|
m_DateTime,
|
2012-02-13 16:50:48 -08:00
|
|
|
|
m_Strings,
|
2012-02-26 08:52:54 -08:00
|
|
|
|
m_FileIO,
|
2012-11-18 09:04:59 -08:00
|
|
|
|
m_Bits,
|
2013-01-17 14:13:12 -08:00
|
|
|
|
m_QuickSort,
|
2012-02-26 08:52:54 -08:00
|
|
|
|
bbs_Ansi_MenuBox,
|
|
|
|
|
bbs_Ansi_MenuForm,
|
|
|
|
|
bbs_Cfg_Common,
|
2013-03-17 04:01:46 -07:00
|
|
|
|
bbs_Cfg_EchoMail,
|
2013-08-28 15:31:33 -07:00
|
|
|
|
bbs_Common,
|
|
|
|
|
bbs_dataBase;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2013-01-17 14:13:12 -08:00
|
|
|
|
Type
|
|
|
|
|
RecMessageBaseFile = File of RecMessageBase;
|
|
|
|
|
|
|
|
|
|
Procedure SortMessageBases (Var List: TAnsiMenuList; Var MBaseFile: RecMessageBaseFile);
|
|
|
|
|
Var
|
|
|
|
|
TempBase : RecMessageBase;
|
|
|
|
|
TempFile : File of RecMessageBase;
|
|
|
|
|
Sort : TQuickSort;
|
|
|
|
|
SortFirst : Word;
|
|
|
|
|
SortLast : Word;
|
|
|
|
|
SortType : Byte;
|
|
|
|
|
Count : Word;
|
|
|
|
|
Begin
|
|
|
|
|
If Not GetSortRange(List, SortFirst, SortLast) Then Exit;
|
|
|
|
|
|
|
|
|
|
Case GetCommandOption(10, 'B-Base Name|F-File Name|N-Network|A-Abort|') of
|
|
|
|
|
'B' : SortType := 1;
|
|
|
|
|
'F' : SortType := 2;
|
|
|
|
|
'N' : SortType := 3;
|
|
|
|
|
'A' : Exit;
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
ShowMsgBox (3, ' Sorting... ');
|
|
|
|
|
|
|
|
|
|
Sort := TQuickSort.Create;
|
|
|
|
|
|
|
|
|
|
For Count := SortFirst to SortLast Do Begin
|
|
|
|
|
Seek (MBaseFile, Count - 1);
|
|
|
|
|
Read (MBaseFile, TempBase);
|
|
|
|
|
|
|
|
|
|
Case SortType of
|
|
|
|
|
1 : Sort.Add (strUpper(strStripPipe(TempBase.Name)), Count - 1);
|
|
|
|
|
2 : Sort.Add (strUpper(TempBase.FileName), Count - 1);
|
|
|
|
|
3 : Sort.Add (strI2S(TempBase.NetAddr), Count - 1);
|
|
|
|
|
End;
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
Sort.Sort (1, Sort.Total, qAscending);
|
|
|
|
|
|
|
|
|
|
Close (MBaseFile);
|
2013-08-28 15:31:33 -07:00
|
|
|
|
ReName (MBaseFile, bbsCfg.DataPath + 'mbases.sortbak');
|
2013-01-17 14:13:12 -08:00
|
|
|
|
|
2013-08-28 15:31:33 -07:00
|
|
|
|
Assign (TempFile, bbsCfg.DataPath + 'mbases.sortbak');
|
2013-01-17 14:13:12 -08:00
|
|
|
|
Reset (TempFile);
|
|
|
|
|
|
2013-08-28 15:31:33 -07:00
|
|
|
|
Assign (MBaseFile, bbsCfg.DataPath + 'mbases.dat');
|
2013-01-17 14:13:12 -08:00
|
|
|
|
ReWrite (MBaseFile);
|
|
|
|
|
|
|
|
|
|
While FilePos(TempFile) < SortFirst - 1 Do Begin
|
|
|
|
|
Read (TempFile, TempBase);
|
|
|
|
|
Write (MBaseFile, TempBase);
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
For Count := 1 to Sort.Total Do Begin
|
|
|
|
|
Seek (TempFile, Sort.Data[Count]^.Ptr);
|
|
|
|
|
Read (TempFile, TempBase);
|
|
|
|
|
Write (MBaseFile, TempBase);
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
Seek (TempFile, SortLast);
|
|
|
|
|
|
|
|
|
|
While Not Eof(TempFile) Do Begin
|
|
|
|
|
Read (TempFile, TempBase);
|
|
|
|
|
Write (MBaseFile, TempBase);
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
Close (TempFile);
|
|
|
|
|
Erase (TempFile);
|
|
|
|
|
|
|
|
|
|
Sort.Free;
|
|
|
|
|
End;
|
|
|
|
|
|
2012-02-27 15:43:39 -08:00
|
|
|
|
Procedure EditMessageBase (Var MBase: RecMessageBase);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Var
|
2013-03-23 08:22:51 -07:00
|
|
|
|
Box : TAnsiMenuBox;
|
|
|
|
|
Form : TAnsiMenuForm;
|
|
|
|
|
Topic : String;
|
|
|
|
|
Links : LongInt;
|
|
|
|
|
OrigFN : String;
|
|
|
|
|
OrigPath : String;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Begin
|
|
|
|
|
Topic := '|03(|09Message Base Edit|03) |01-|09> |15';
|
|
|
|
|
Box := TAnsiMenuBox.Create;
|
|
|
|
|
Form := TAnsiMenuForm.Create;
|
|
|
|
|
|
2013-03-23 08:22:51 -07:00
|
|
|
|
OrigFN := MBase.FileName;
|
|
|
|
|
OrigPath := Mbase.Path;
|
|
|
|
|
|
2013-03-17 04:01:46 -07:00
|
|
|
|
Box.Shadow := False;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Box.Header := ' Index ' + strI2S(MBase.Index) + ' ';
|
|
|
|
|
|
2013-05-06 10:19:01 -07:00
|
|
|
|
Box.Open (3, 4, 77, 22);
|
|
|
|
|
|
|
|
|
|
VerticalLine (17, 5, 20);
|
|
|
|
|
VerticalLine (66, 5, 21);
|
|
|
|
|
|
|
|
|
|
Form.AddStr ('N', ' Name' , 11, 5, 19, 5, 6, 30, 40, @MBase.Name, Topic + 'Message base description');
|
|
|
|
|
Form.AddStr ('W', ' Newsgroup' , 6, 6, 19, 6, 11, 30, 60, @MBase.NewsName, Topic + 'Newsgroup name');
|
|
|
|
|
Form.AddStr ('Q', ' QWK Name' , 7, 7, 19, 7, 10, 13, 13, @MBase.QwkName, Topic + 'Qwk Short name');
|
|
|
|
|
Form.AddStr ('8', ' Echo Tag' , 7, 8, 19, 8, 10, 30, 40, @MBase.EchoTag, Topic + 'FTN EchoTag');
|
|
|
|
|
Form.AddStr ('F', ' File Name' , 6, 9, 19, 9, 11, 30, 40, @MBase.FileName, Topic + 'Message base storage file name');
|
|
|
|
|
Form.AddPath ('P', ' Path' , 11, 10, 19, 10, 6, 30, 80, @MBase.Path, Topic + 'Message base storage path');
|
|
|
|
|
Form.AddStr ('L', ' List ACS' , 7, 11, 19, 11, 10, 30, 30, @MBase.ListACS, Topic + 'Access required to see in base list');
|
|
|
|
|
Form.AddStr ('R', ' Read ACS' , 7, 12, 19, 12, 10, 30, 30, @MBase.ReadACS, Topic + 'Access required to read messages');
|
|
|
|
|
Form.AddStr ('C', ' Post ACS' , 7, 13, 19, 13, 10, 30, 30, @MBase.PostACS, Topic + 'Access required to post messages');
|
|
|
|
|
Form.AddStr ('Y', ' Sysop ACS' , 6, 14, 19, 14, 11, 30, 30, @MBase.SysopACS, Topic + 'Access required for Sysop access');
|
|
|
|
|
Form.AddNone ('D', ' Net Address' , 4, 15, 19, 15, 13, Topic + 'Net/EchoMail Address');
|
|
|
|
|
Form.AddNone ('7', ' Export To' , 6, 16, 19, 16, 11, Topic + 'Export messages to these nodes');
|
|
|
|
|
Form.AddStr ('I', ' Origin' , 9, 17, 19, 17, 8, 30, 50, @MBase.Origin, Topic + 'Message base origin line');
|
|
|
|
|
Form.AddStr ('S', ' Sponsor' , 8, 18, 19, 18, 9, 30, 30, @MBase.Sponsor, Topic + 'User name of base''s sponser');
|
|
|
|
|
Form.AddStr ('T', ' R Template' , 5, 19, 19, 19, 12, 20, 20, @MBase.RTemplate, Topic + 'Template for full screen reader');
|
|
|
|
|
Form.AddStr ('M', ' L Template' , 5, 20, 19, 20, 12, 20, 20, @MBase.ITemplate, Topic + 'Template for lightbar message list');
|
|
|
|
|
|
|
|
|
|
Form.AddAttr ('Q', ' Quote Color' , 53, 5, 68, 5, 13, @MBase.ColQuote, Topic + 'Color for quoted text');
|
|
|
|
|
Form.AddAttr ('X', ' Text Color' , 54, 6, 68, 6, 12, @MBase.ColText, Topic + 'Color for message text');
|
|
|
|
|
Form.AddAttr ('E', ' Tear Color' , 54, 7, 68, 7, 12, @MBase.ColTear, Topic + 'Color for tear line');
|
|
|
|
|
Form.AddAttr ('G', ' Origin Color', 52, 8, 68, 8, 14, @MBase.ColOrigin, Topic + 'Color for origin line');
|
|
|
|
|
Form.AddAttr ('K', ' Kludge Color', 52, 9, 68, 9, 14, @MBase.ColKludge, Topic + 'Color for kludge line');
|
|
|
|
|
Form.AddWord ('M', ' Max Msgs' , 56, 10, 68, 10, 10, 5, 0, 65535, @MBase.MaxMsgs, Topic + 'Maximum number of message in base');
|
|
|
|
|
Form.AddWord ('1', ' Max Msg Age' , 53, 11, 68, 11, 13, 5, 0, 65535, @MBase.MaxAge, Topic + 'Maximum age (days) to keep messages');
|
|
|
|
|
Form.AddTog ('2', ' New Scan' , 56, 12, 68, 12, 10, 6, 0, 2, 'No Yes Forced', @MBase.DefNScan, Topic + 'Newscan default for users');
|
|
|
|
|
Form.AddTog ('3', ' QWK Scan' , 56, 13, 68, 13, 10, 6, 0, 2, 'No Yes Forced', @MBase.DefQScan, Topic + 'QWKscan default for users');
|
|
|
|
|
Form.AddTog ('A', ' Base Type' , 55, 14, 68, 14, 11, 9, 0, 3, 'Local EchoMail Newsgroup Netmail', @MBase.NetType, Topic + 'Message base type');
|
|
|
|
|
Form.AddTog ('B', ' Base Format' , 53, 15, 68, 15, 13, 6, 0, 1, 'JAM Squish', @MBase.BaseType, Topic + 'Message base storage format');
|
|
|
|
|
Form.AddStr ('H', ' Header' , 58, 16, 68, 16, 8, 9, 20, @MBase.Header, Topic + 'Display file name of msg header');
|
|
|
|
|
Form.AddBits ('4', ' Real Names' , 54, 17, 68, 17, 12, MBRealNames, @MBase.Flags, Topic + 'Use real names in this base?');
|
|
|
|
|
Form.AddBits ('5', ' Autosigs' , 56, 18, 68, 18, 10, MBAutoSigs, @MBase.Flags, Topic + 'Allow auto signatures in this base?');
|
|
|
|
|
Form.AddBits ('6', ' Kill Kludge' , 53, 19, 68, 19, 13, MBKillKludge, @MBase.Flags, Topic + 'Filter out kludge lines');
|
|
|
|
|
Form.AddBits ('V', ' Private' , 57, 20, 68, 20, 9, MBPrivate, @MBase.Flags, Topic + 'Is a private only base?');
|
|
|
|
|
Form.AddBits ('9', ' Pvt Reply' , 55, 21, 68, 21, 11, MBPrivReply, @MBase.Flags, Topic + 'Allow private posts in public?');
|
2013-03-17 04:01:46 -07:00
|
|
|
|
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Repeat
|
2013-08-28 15:31:33 -07:00
|
|
|
|
WriteXY (19, 15, 113, strPadR(strAddr2Str(bbsCfg.NetAddress[MBase.NetAddr]), 19, ' '));
|
2013-03-17 04:01:46 -07:00
|
|
|
|
|
|
|
|
|
Links := FileByteSize(MBase.Path + MBase.FileName + '.lnk');
|
|
|
|
|
|
|
|
|
|
If Links <> -1 Then
|
|
|
|
|
Links := Links DIV SizeOf(RecEchoMailExport)
|
|
|
|
|
Else
|
|
|
|
|
Links := 0;
|
|
|
|
|
|
2013-05-06 10:19:01 -07:00
|
|
|
|
WriteXY (19, 16, 113, strI2S(Links) + ' node(s)');
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
|
|
|
|
Case Form.Execute of
|
|
|
|
|
'D' : MBase.NetAddr := Configuration_EchoMailAddress(False);
|
2013-03-17 04:01:46 -07:00
|
|
|
|
'7' : Configuration_NodeExport (MBase);
|
2013-05-20 02:35:04 -07:00
|
|
|
|
#27 : {If (MBase.NetType > 0) And (MBase.EchoTag = '') And (MBase.NetType <> 3) Then
|
2013-05-06 17:07:39 -07:00
|
|
|
|
ShowMsgBox(0, 'Echo base requires echotag')
|
2013-05-20 02:35:04 -07:00
|
|
|
|
Else}
|
2013-05-06 17:07:39 -07:00
|
|
|
|
Break;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
End;
|
|
|
|
|
Until False;
|
|
|
|
|
|
2012-02-27 09:51:34 -08:00
|
|
|
|
MBase.NewsName := strReplace(MBase.NewsName, ' ', '.');
|
|
|
|
|
|
2013-03-23 08:22:51 -07:00
|
|
|
|
If (MBase.FileName <> OrigFN) or (MBase.Path <> OrigPath) Then
|
|
|
|
|
If ShowMsgBox (1, 'Path/Filename changed. Rename? ') Then Begin
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.lnk', MBase.Path + MBase.FileName + '.lnk');
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.scn', MBase.Path + MBase.FileName + '.scn');
|
|
|
|
|
|
|
|
|
|
Case MBase.BaseType of
|
|
|
|
|
0 : Begin
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.jhr', MBase.Path + MBase.FileName + '.jhr');
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.jlr', MBase.Path + MBase.FileName + '.jlr');
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.jdt', MBase.Path + MBase.FileName + '.jdt');
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.jdx', MBase.Path + MBase.FileName + '.jdx');
|
|
|
|
|
End;
|
|
|
|
|
1 : Begin
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.sqd', MBase.Path + MBase.FileName + '.sqd');
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.sqi', MBase.Path + MBase.FileName + '.sqi');
|
|
|
|
|
FileRename (OrigPath + OrigFN + '.sql', MBase.Path + MBase.FileName + '.sql');
|
|
|
|
|
End;
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
End;
|
|
|
|
|
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Box.Close;
|
|
|
|
|
|
|
|
|
|
Form.Free;
|
|
|
|
|
Box.Free;
|
|
|
|
|
End;
|
|
|
|
|
|
2013-03-17 04:01:46 -07:00
|
|
|
|
Function Configuration_MessageBaseEditor (Edit: Boolean) : LongInt;
|
2012-02-13 16:50:48 -08:00
|
|
|
|
Var
|
2012-02-27 15:43:39 -08:00
|
|
|
|
Box : TAnsiMenuBox;
|
|
|
|
|
List : TAnsiMenuList;
|
|
|
|
|
Copied : RecMessageBase;
|
|
|
|
|
HasCopy : Boolean = False;
|
2013-04-27 17:02:29 -07:00
|
|
|
|
CopyIdx : LongInt;
|
2012-11-18 10:36:20 -08:00
|
|
|
|
MBaseFile : File of RecMessageBase;
|
2012-02-27 15:43:39 -08:00
|
|
|
|
MBase : RecMessageBase;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2012-11-18 09:04:59 -08:00
|
|
|
|
Procedure GlobalEdit (Global: RecMessageBase);
|
|
|
|
|
Const
|
|
|
|
|
ChangeStr = 'Change this value for all tagged bases?';
|
|
|
|
|
Var
|
|
|
|
|
GBox : TAnsiMenuBox;
|
|
|
|
|
Form : TAnsiMenuForm;
|
2013-04-19 23:26:51 -07:00
|
|
|
|
Active : Array[1..28] of Boolean;
|
2013-03-22 20:17:33 -07:00
|
|
|
|
ActCnt : Byte;
|
2012-11-18 09:04:59 -08:00
|
|
|
|
Count : LongInt;
|
|
|
|
|
Topic : String;
|
2013-04-19 23:26:51 -07:00
|
|
|
|
DelIdx : LongInt = -1;
|
|
|
|
|
DelStr : String = '';
|
|
|
|
|
AddIdx : LongInt = -1;
|
|
|
|
|
AddStr : String = '';
|
|
|
|
|
EN : RecEchoMailNode;
|
2012-03-17 11:11:50 -07:00
|
|
|
|
Begin
|
2012-11-18 09:04:59 -08:00
|
|
|
|
FillChar (Active, SizeOf(Active), 0);
|
|
|
|
|
|
|
|
|
|
Topic := '|03(|09Global MsgBase Edit|03) |01-|09> |15';
|
|
|
|
|
GBox := TAnsiMenuBox.Create;
|
|
|
|
|
Form := TAnsiMenuForm.Create;
|
|
|
|
|
|
|
|
|
|
GBox.Header := ' CTRL-U/Update ESC/Abort ';
|
|
|
|
|
|
|
|
|
|
GBox.Open (6, 5, 75, 21);
|
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
VerticalLine (26, 7, 20);
|
|
|
|
|
VerticalLine (64, 7, 20);
|
2012-11-18 09:04:59 -08:00
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
For Count := 1 to 14 Do
|
2012-11-18 09:04:59 -08:00
|
|
|
|
Form.AddBol ('!', '> ', 8, 6 + Count, 10, 6 + Count, 2, 3, @Active[Count], Topic + ChangeStr);
|
|
|
|
|
|
2012-11-18 09:38:30 -08:00
|
|
|
|
Form.AddPath ('P', ' Path' , 20, 7, 28, 7, 6, 16, 80, @Global.Path, Topic + 'Message base storage path');
|
2012-11-18 09:04:59 -08:00
|
|
|
|
Form.AddStr ('L', ' List ACS' , 16, 8, 28, 8, 10, 16, 30, @Global.ListACS, Topic + 'Access required to see in base list');
|
|
|
|
|
Form.AddStr ('R', ' Read ACS' , 16, 9, 28, 9, 10, 16, 30, @Global.ReadACS, Topic + 'Access required to read messages');
|
2012-11-18 09:38:30 -08:00
|
|
|
|
Form.AddStr ('C', ' Post ACS' , 16, 10, 28, 10, 10, 16, 30, @Global.PostACS, Topic + 'Access required to post messages');
|
2012-11-18 09:04:59 -08:00
|
|
|
|
Form.AddStr ('Y', ' Sysop ACS' , 15, 11, 28, 11, 11, 16, 30, @Global.SysopACS, Topic + 'Access required for Sysop access');
|
|
|
|
|
Form.AddNone ('D', ' Net Address' , 13, 12, 28, 12, 13, Topic + 'NetMail Address');
|
|
|
|
|
Form.AddStr ('I', ' Origin' , 18, 13, 28, 13, 8, 16, 50, @Global.Origin, Topic + 'Message base origin line');
|
|
|
|
|
Form.AddStr ('S', ' Sponsor' , 17, 14, 28, 14, 9, 16, 30, @Global.Sponsor, Topic + 'User name of base''s sponser');
|
|
|
|
|
Form.AddStr ('H', ' Header' , 18, 15, 28, 15, 8, 16, 20, @Global.Header, Topic + 'Display file name of msg header');
|
|
|
|
|
Form.AddStr ('T', ' R Template' , 14, 16, 28, 16, 12, 16, 20, @Global.RTemplate, Topic + 'Template for full screen reader');
|
|
|
|
|
Form.AddStr ('M', ' L Template' , 14, 17, 28, 17, 12, 16, 20, @Global.ITemplate, Topic + 'Template for lightbar message list');
|
|
|
|
|
Form.AddTog ('A', ' Base Type' , 15, 18, 28, 18, 11, 9, 0, 3, 'Local EchoMail Newsgroup Netmail', @Global.NetType, Topic + 'Message base type');
|
|
|
|
|
Form.AddTog ('B', ' Base Format' , 13, 19, 28, 19, 13, 6, 0, 1, 'JAM Squish', @Global.BaseType, Topic + 'Message base storage format');
|
2013-04-19 23:26:51 -07:00
|
|
|
|
Form.AddNone ('7', ' Export Add' , 14, 20, 28, 20, 12, Topic + 'Add EchoNode Export');
|
2012-11-18 09:04:59 -08:00
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
For Count := 1 to 14 Do
|
|
|
|
|
Form.AddBol ('!', '> ', 45, 6 + Count, 47, 6 + Count, 2, 3, @Active[Count + 14], Topic + ChangeStr);
|
2012-11-18 09:04:59 -08:00
|
|
|
|
|
|
|
|
|
Form.AddAttr ('Q', ' Quote Color' , 51, 7, 66, 7, 13, @Global.ColQuote, Topic + 'Color for quoted text');
|
|
|
|
|
Form.AddAttr ('X', ' Text Color' , 52, 8, 66, 8, 12, @Global.ColText, Topic + 'Color for message text');
|
|
|
|
|
Form.AddAttr ('E', ' Tear Color' , 52, 9, 66, 9, 12, @Global.ColTear, Topic + 'Color for tear line');
|
|
|
|
|
Form.AddAttr ('G', ' Origin Color', 50, 10, 66, 10, 14, @Global.ColOrigin, Topic + 'Color for origin line');
|
|
|
|
|
Form.AddAttr ('K', ' Kludge Color', 50, 11, 66, 11, 14, @Global.ColKludge, Topic + 'Color for kludge line');
|
|
|
|
|
Form.AddWord ('M', ' Max Msgs' , 54, 12, 66, 12, 10, 5, 0, 65535, @Global.MaxMsgs, Topic + 'Maximum number of message in base');
|
|
|
|
|
Form.AddWord ('1', ' Max Msg Age' , 51, 13, 66, 13, 13, 5, 0, 65535, @Global.MaxAge, Topic + 'Maximum age (days) to keep messages');
|
|
|
|
|
Form.AddTog ('2', ' New Scan' , 54, 14, 66, 14, 10, 6, 0, 2, 'No Yes Forced', @Global.DefNScan, Topic + 'Newscan default for users');
|
|
|
|
|
Form.AddTog ('3', ' QWK Scan' , 54, 15, 66, 15, 10, 6, 0, 2, 'No Yes Forced', @Global.DefQScan, Topic + 'QWKscan default for users');
|
|
|
|
|
Form.AddBits ('4', ' Real Names' , 52, 16, 66, 16, 12, MBRealNames, @Global.Flags, Topic + 'Use real names in this base?');
|
|
|
|
|
Form.AddBits ('5', ' Autosigs' , 54, 17, 66, 17, 10, MBAutoSigs, @Global.Flags, Topic + 'Allow auto signatures in this base?');
|
|
|
|
|
Form.AddBits ('6', ' Kill Kludge' , 51, 18, 66, 18, 13, MBKillKludge, @Global.Flags, Topic + 'Filter out kludge lines');
|
|
|
|
|
Form.AddBits ('V', ' Private' , 55, 19, 66, 19, 9, MBPrivate, @Global.Flags, Topic + 'Is this a private base?');
|
2013-04-19 23:26:51 -07:00
|
|
|
|
Form.AddNone ('8', ' Export Kill' , 51, 20, 66, 20, 13, Topic + 'Remove EchoNode Export');
|
2012-11-18 09:04:59 -08:00
|
|
|
|
|
|
|
|
|
Form.LoExitChars := #21#27;
|
|
|
|
|
|
|
|
|
|
Repeat
|
2013-08-28 15:31:33 -07:00
|
|
|
|
WriteXY (28, 12, 113, strPadR(strAddr2Str(bbsCfg.NetAddress[Global.NetAddr]), 19, ' '));
|
2012-11-18 09:38:30 -08:00
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
If AddStr <> '' Then
|
|
|
|
|
WriteXY (28, 20, 113, strPadR(AddStr, 12, ' '));
|
|
|
|
|
|
|
|
|
|
If DelStr <> '' Then
|
|
|
|
|
WriteXY (66, 20, 113, strPadR(DelStr, 8, ' '));
|
|
|
|
|
|
2012-11-18 09:04:59 -08:00
|
|
|
|
Case Form.Execute of
|
2013-04-19 23:26:51 -07:00
|
|
|
|
'7' : Begin
|
|
|
|
|
AddIdx := Configuration_EchoMailNodes(False);
|
|
|
|
|
|
|
|
|
|
If GetNodeByIndex(AddIdx, EN) Then
|
|
|
|
|
AddStr := strAddr2Str(EN.Address);
|
|
|
|
|
End;
|
|
|
|
|
'8' : Begin
|
|
|
|
|
DelIdx := Configuration_EchoMailNodes(False);
|
|
|
|
|
|
|
|
|
|
If GetNodeByIndex(DelIdx, EN) Then
|
|
|
|
|
DelStr := strAddr2Str(EN.Address);
|
|
|
|
|
End;
|
2012-11-18 09:04:59 -08:00
|
|
|
|
'D' : Global.NetAddr := Configuration_EchoMailAddress(False);
|
2013-03-22 20:17:33 -07:00
|
|
|
|
#21 : Begin
|
|
|
|
|
ActCnt := 0;
|
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
For Count := 1 to 28 Do
|
2013-03-22 20:17:33 -07:00
|
|
|
|
If Active[Count] Then Inc(ActCnt);
|
|
|
|
|
|
|
|
|
|
If ShowMsgBox(1, 'Update ' + strI2S(ActCnt) + ' settings per base?') Then Begin
|
|
|
|
|
For Count := 1 to List.ListMax Do
|
|
|
|
|
If List.List[Count]^.Tagged = 1 Then Begin
|
|
|
|
|
Seek (MBaseFile, Count - 1);
|
|
|
|
|
Read (MBaseFile, MBase);
|
|
|
|
|
|
|
|
|
|
If Active[01] Then MBase.Path := Global.Path;
|
|
|
|
|
If Active[02] Then MBase.ListACS := Global.ListACS;
|
|
|
|
|
If Active[03] Then MBase.ReadACS := Global.ReadACS;
|
|
|
|
|
If Active[04] Then MBase.PostACS := Global.PostACS;
|
|
|
|
|
If Active[05] Then MBase.SysopACS := Global.SysopACS;
|
|
|
|
|
If Active[06] Then MBase.NetAddr := Global.NetAddr;
|
|
|
|
|
If Active[07] Then MBase.Origin := Global.Origin;
|
|
|
|
|
If Active[08] Then MBase.Sponsor := Global.Sponsor;
|
|
|
|
|
If Active[09] Then MBase.Header := Global.Header;
|
|
|
|
|
If Active[10] Then MBase.RTemplate := Global.RTemplate;
|
|
|
|
|
If Active[11] Then MBase.ITemplate := Global.ITemplate;
|
|
|
|
|
If Active[12] Then MBase.NetType := Global.NetType;
|
|
|
|
|
If Active[13] Then MBase.BaseType := Global.BaseType;
|
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
If Active[15] Then MBase.ColQuote := Global.ColQuote;
|
|
|
|
|
If Active[16] Then MBase.ColText := Global.ColText;
|
|
|
|
|
If Active[17] Then MBase.ColTear := Global.ColTear;
|
|
|
|
|
If Active[18] Then MBase.ColOrigin := Global.ColOrigin;
|
|
|
|
|
If Active[19] Then MBase.ColKludge := Global.ColKludge;
|
|
|
|
|
If Active[20] Then MBase.MaxMsgs := Global.MaxMsgs;
|
|
|
|
|
If Active[21] Then MBase.MaxAge := Global.MaxAge;
|
|
|
|
|
If Active[22] Then MBase.DefNScan := Global.DefNScan;
|
|
|
|
|
If Active[23] Then MBase.DefQScan := Global.DefQScan;
|
|
|
|
|
If Active[24] Then BitSet(1, 4, MBase.Flags, (Global.Flags AND MBRealNames <> 0));
|
|
|
|
|
If Active[25] Then BitSet(3, 4, MBase.Flags, (Global.Flags AND MBAutoSigs <> 0));
|
|
|
|
|
If Active[26] Then BitSet(2, 4, MBase.Flags, (Global.Flags AND MBKillKludge <> 0));
|
|
|
|
|
If Active[27] Then BitSet(5, 4, MBase.Flags, (Global.Flags AND MBPrivate <> 0));
|
2013-03-22 20:17:33 -07:00
|
|
|
|
|
|
|
|
|
Seek (MBaseFile, Count - 1);
|
|
|
|
|
Write (MBaseFile, MBase);
|
2013-04-19 23:26:51 -07:00
|
|
|
|
|
|
|
|
|
If Active[14] And (AddIdx <> -1) Then
|
|
|
|
|
AddExportByBase (MBase, AddIdx);
|
|
|
|
|
|
|
|
|
|
If Active[28] And (DelIdx <> -1) Then
|
|
|
|
|
RemoveExportFromBase (MBase, DelIdx);
|
2013-03-22 20:17:33 -07:00
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
Break;
|
|
|
|
|
End;
|
2012-11-18 09:04:59 -08:00
|
|
|
|
End;
|
|
|
|
|
#27 : Break;
|
|
|
|
|
End;
|
|
|
|
|
Until False;
|
|
|
|
|
|
|
|
|
|
Form.Free;
|
|
|
|
|
|
|
|
|
|
GBox.Close;
|
|
|
|
|
GBox.Free;
|
2012-03-17 11:11:50 -07:00
|
|
|
|
End;
|
|
|
|
|
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Procedure MakeList;
|
|
|
|
|
Var
|
2013-03-31 22:08:13 -07:00
|
|
|
|
Tag : Byte;
|
|
|
|
|
Addr : String;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Begin
|
|
|
|
|
List.Clear;
|
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Reset (MBaseFile);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
While Not EOF(MBaseFile) Do Begin
|
|
|
|
|
If FilePos(MBaseFile) = 0 Then Tag := 2 Else Tag := 0;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Read (MBaseFile, MBase);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2013-03-31 22:08:13 -07:00
|
|
|
|
If MBase.NetType = 0 Then
|
|
|
|
|
Addr := 'Local'
|
|
|
|
|
Else
|
2013-08-28 15:31:33 -07:00
|
|
|
|
Addr := strAddr2Str(bbsCfg.NetAddress[MBase.NetAddr]);
|
2013-03-31 22:08:13 -07:00
|
|
|
|
|
|
|
|
|
List.Add(strPadR(strI2S(FilePos(MBaseFile) - 1), 5, ' ') + ' ' + strPadR(strStripMCI(MBase.Name), 35, ' ') + ' ' + strPadL(Addr, 12, ' '), Tag);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
List.Add('', 2);
|
|
|
|
|
End;
|
|
|
|
|
|
2013-01-24 07:25:51 -08:00
|
|
|
|
Function GetPermanentIndex (Start: LongInt) : LongInt;
|
|
|
|
|
Var
|
|
|
|
|
TempBase : RecMessageBase;
|
2013-01-24 12:47:49 -08:00
|
|
|
|
SavedRec : LongInt;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Begin
|
2013-01-24 12:47:49 -08:00
|
|
|
|
Result := Start;
|
|
|
|
|
SavedRec := FilePos(MBaseFile);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Reset (MBaseFile);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
While Not EOF(MBaseFile) Do Begin
|
2013-01-24 07:25:51 -08:00
|
|
|
|
Read (MBaseFile, TempBase);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2013-01-24 07:25:51 -08:00
|
|
|
|
If Result = TempBase.Index Then Begin
|
2013-02-16 21:31:57 -08:00
|
|
|
|
If Result >= 2000000 Then Result := 0;
|
|
|
|
|
|
|
|
|
|
Inc (Result);
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Reset (MBaseFile);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
End;
|
|
|
|
|
End;
|
2013-01-24 12:47:49 -08:00
|
|
|
|
|
|
|
|
|
Seek (MBaseFile, SavedRec);
|
2013-01-24 07:25:51 -08:00
|
|
|
|
End;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2013-01-24 07:25:51 -08:00
|
|
|
|
Procedure AssignRecord (Email: Boolean);
|
|
|
|
|
Begin
|
2012-11-18 10:36:20 -08:00
|
|
|
|
AddRecord (MBaseFile, List.Picked, SizeOf(RecMessageBase));
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
|
|
|
|
FillChar (MBase, SizeOf(RecMessageBase), 0);
|
|
|
|
|
|
|
|
|
|
With MBase Do Begin
|
2013-02-16 21:31:57 -08:00
|
|
|
|
Index := GetPermanentIndex(FileSize(MBaseFile));
|
2013-04-27 17:02:29 -07:00
|
|
|
|
|
2013-02-16 21:31:57 -08:00
|
|
|
|
Created := CurDateDos;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
FileName := 'new';
|
2013-08-28 15:31:33 -07:00
|
|
|
|
Path := bbsCfg.MsgsPath;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Name := 'New Base';
|
|
|
|
|
DefNScan := 1;
|
|
|
|
|
DefQScan := 1;
|
|
|
|
|
MaxMsgs := 500;
|
|
|
|
|
MaxAge := 365;
|
|
|
|
|
Header := 'msghead';
|
|
|
|
|
RTemplate := 'ansimrd';
|
|
|
|
|
ITemplate := 'ansimlst';
|
|
|
|
|
SysopACS := 's255';
|
|
|
|
|
NetAddr := 1;
|
2013-08-28 15:31:33 -07:00
|
|
|
|
Origin := bbsCfg.Origin;
|
|
|
|
|
ColQuote := bbsCfg.ColorQuote;
|
|
|
|
|
ColText := bbsCfg.ColorText;
|
|
|
|
|
ColTear := bbsCfg.ColorTear;
|
|
|
|
|
ColOrigin := bbsCfg.ColorOrigin;
|
|
|
|
|
ColKludge := bbsCfg.ColorKludge;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Flags := MBAutoSigs or MBKillKludge;
|
|
|
|
|
|
|
|
|
|
If Email Then Begin
|
|
|
|
|
FileName := 'email';
|
|
|
|
|
Name := 'Electronic Mail';
|
2012-02-27 06:30:13 -08:00
|
|
|
|
Index := 1;
|
|
|
|
|
ListACS := '%';
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Flags := Flags or MBPrivate;
|
|
|
|
|
End;
|
|
|
|
|
End;
|
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
Write (MBaseFile, MBase);
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
Procedure EraseData;
|
|
|
|
|
Begin
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.jhr');
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.jlr');
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.jdt');
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.jdx');
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.sqd');
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.sqi');
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.sql');
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.scn');
|
2012-02-26 08:52:54 -08:00
|
|
|
|
End;
|
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
Var
|
|
|
|
|
KillData : Boolean;
|
|
|
|
|
Count : LongInt;
|
2012-02-13 16:50:48 -08:00
|
|
|
|
Begin
|
2013-03-17 04:01:46 -07:00
|
|
|
|
Result := -1;
|
|
|
|
|
|
2013-08-28 15:31:33 -07:00
|
|
|
|
Assign (MBaseFile, bbsCfg.DataPath + 'mbases.dat');
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
If Not ioReset(MBaseFile, SizeOf(MBase), fmRWDN) Then
|
2012-02-26 08:52:54 -08:00
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
Box := TAnsiMenuBox.Create;
|
|
|
|
|
List := TAnsiMenuList.Create;
|
|
|
|
|
|
|
|
|
|
List.NoWindow := True;
|
|
|
|
|
List.LoChars := #13#27#47;
|
|
|
|
|
List.AllowTag := True;
|
2013-01-24 12:47:49 -08:00
|
|
|
|
List.SearchY := 20;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
If FileSize(MBaseFile) = 0 Then AssignRecord(True);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2013-01-24 12:47:49 -08:00
|
|
|
|
Box.Open (11, 5, 69, 20);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2013-01-24 12:47:49 -08:00
|
|
|
|
WriteXY (13, 6, 112, '##### Message Base Description Network');
|
|
|
|
|
WriteXY (12, 7, 112, strRep('<27>', 57));
|
|
|
|
|
WriteXY (12, 18, 112, strRep('<27>', 57));
|
|
|
|
|
WriteXY (29, 19, 112, cfgCommandList);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
|
|
|
|
Repeat
|
|
|
|
|
MakeList;
|
|
|
|
|
|
2013-01-24 12:47:49 -08:00
|
|
|
|
List.Open (11, 7, 69, 18);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
List.Close;
|
|
|
|
|
|
|
|
|
|
Case List.ExitCode of
|
2013-03-17 04:01:46 -07:00
|
|
|
|
'/' : If Edit Then
|
2013-04-27 17:02:29 -07:00
|
|
|
|
Case GetCommandOption(8, 'I-Insert|D-Delete|C-Copy|M-Move|P-Paste|G-Global|S-Sort|') of
|
2012-02-26 08:52:54 -08:00
|
|
|
|
'I' : If List.Picked > 1 Then Begin
|
|
|
|
|
AssignRecord(False);
|
|
|
|
|
MakeList;
|
|
|
|
|
End;
|
2013-04-19 23:26:51 -07:00
|
|
|
|
'D' : If List.Marked > 0 Then Begin
|
|
|
|
|
If ShowMsgBox(1, 'Delete ' + strI2S(List.Marked) + ' bases?') Then Begin
|
|
|
|
|
KillData := ShowMsgBox(1, 'Delete data files for ' + strI2S(List.Marked) + ' bases?');
|
|
|
|
|
|
|
|
|
|
For Count := List.ListMax DownTo 1 Do
|
|
|
|
|
If List.List[Count].Tagged = 1 Then Begin
|
|
|
|
|
Seek (MBaseFile, Count - 1);
|
|
|
|
|
Read (MBaseFile, MBase);
|
|
|
|
|
|
|
|
|
|
KillRecord (MBaseFile, Count, SizeOf(MBase));
|
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.lnk');
|
|
|
|
|
|
|
|
|
|
If KillData Then EraseData;
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
MakeList;
|
|
|
|
|
End;
|
|
|
|
|
End Else
|
|
|
|
|
If (List.Picked > 1) and (List.Picked < List.ListMax) Then
|
2012-02-26 08:52:54 -08:00
|
|
|
|
If ShowMsgBox(1, 'Delete this entry?') Then Begin
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Seek (MBaseFile, List.Picked - 1);
|
|
|
|
|
Read (MBaseFile, MBase);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
KillRecord (MBaseFile, List.Picked, SizeOf(MBase));
|
2013-04-19 23:26:51 -07:00
|
|
|
|
FileErase (MBase.Path + MBase.FileName + '.lnk');
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
2013-04-19 23:26:51 -07:00
|
|
|
|
If ShowMsgBox(1, 'Delete data: ' + strStripPipe(MBase.Name)) Then
|
|
|
|
|
EraseData;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
|
|
|
|
MakeList;
|
|
|
|
|
End;
|
|
|
|
|
'C' : If List.Picked <> List.ListMax Then Begin
|
2013-04-27 17:02:29 -07:00
|
|
|
|
CopyIdx := List.Picked;
|
|
|
|
|
|
|
|
|
|
Seek (MBaseFile, CopyIdx - 1);
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Read (MBaseFile, Copied);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
|
|
|
|
HasCopy := True;
|
|
|
|
|
End;
|
2013-04-27 17:02:29 -07:00
|
|
|
|
'M' : If HasCopy And (List.Picked > 1) Then Begin
|
|
|
|
|
AddRecord (MBaseFile, List.Picked, SizeOf(MBase));
|
|
|
|
|
Write (MBaseFile, Copied);
|
|
|
|
|
|
|
|
|
|
If List.Picked <= CopyIdx Then
|
|
|
|
|
Inc(CopyIdx);
|
|
|
|
|
|
|
|
|
|
KillRecord (MBaseFile, CopyIdx, SizeOf(MBase));
|
|
|
|
|
|
|
|
|
|
MakeList;
|
|
|
|
|
|
|
|
|
|
HasCopy := False;
|
|
|
|
|
End;
|
2012-11-18 00:47:50 -08:00
|
|
|
|
'P' : If HasCopy And (List.Picked > 1) Then Begin
|
2012-11-18 10:36:20 -08:00
|
|
|
|
AddRecord (MBaseFile, List.Picked, SizeOf(MBase));
|
2013-01-24 07:25:51 -08:00
|
|
|
|
|
2013-02-16 21:31:57 -08:00
|
|
|
|
Copied.Index := GetPermanentIndex(FileSize(MBaseFile));
|
|
|
|
|
Copied.Created := CurDateDos;
|
2013-01-24 07:25:51 -08:00
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Write (MBaseFile, Copied);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
|
|
|
|
|
MakeList;
|
|
|
|
|
End;
|
2012-03-17 11:11:50 -07:00
|
|
|
|
'G' : If List.Marked = 0 Then
|
2012-11-18 10:36:20 -08:00
|
|
|
|
ShowMsgBox(0, 'Use TAB to tag areas for global edit')
|
2012-11-18 09:04:59 -08:00
|
|
|
|
Else Begin
|
2012-11-18 10:36:20 -08:00
|
|
|
|
If (List.Picked > 1) And (List.Picked < List.ListMax) Then Begin
|
|
|
|
|
Seek (MBaseFile, List.Picked - 1);
|
|
|
|
|
Read (MBaseFile, MBase);
|
|
|
|
|
End Else
|
|
|
|
|
FillChar (MBase, SizeOf(MBase), 0);
|
2012-11-18 09:04:59 -08:00
|
|
|
|
|
|
|
|
|
GlobalEdit (MBase);
|
|
|
|
|
End;
|
2013-01-17 14:13:12 -08:00
|
|
|
|
'S' : SortMessageBases (List, MBaseFile);
|
2012-02-26 08:52:54 -08:00
|
|
|
|
End;
|
|
|
|
|
#13 : If List.Picked < List.ListMax Then Begin
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Seek (MBaseFile, List.Picked - 1);
|
|
|
|
|
Read (MBaseFile, MBase);
|
2012-02-27 15:43:39 -08:00
|
|
|
|
|
2013-03-17 04:01:46 -07:00
|
|
|
|
If Edit Then Begin
|
|
|
|
|
EditMessageBase (MBase);
|
|
|
|
|
|
|
|
|
|
Seek (MBaseFile, List.Picked - 1);
|
|
|
|
|
Write (MBaseFile, MBase);
|
|
|
|
|
End Else Begin
|
|
|
|
|
Result := MBase.Index;
|
2012-02-27 15:43:39 -08:00
|
|
|
|
|
2013-03-17 04:01:46 -07:00
|
|
|
|
Break;
|
|
|
|
|
End;
|
2012-02-26 08:52:54 -08:00
|
|
|
|
End;
|
|
|
|
|
#27 : Break;
|
|
|
|
|
End;
|
|
|
|
|
Until False;
|
|
|
|
|
|
|
|
|
|
Box.Close;
|
|
|
|
|
|
2012-11-18 10:36:20 -08:00
|
|
|
|
Close (MBaseFile);
|
|
|
|
|
|
2012-02-26 08:52:54 -08:00
|
|
|
|
List.Free;
|
|
|
|
|
Box.Free;
|
|
|
|
|
End;
|
|
|
|
|
|
|
|
|
|
End.
|