renegadebbs/SOURCE/UPGRADE/FIXBBSL.PAS

218 lines
6.7 KiB
Plaintext

Program FixBBSL;
Uses
Dos,
Crt,
Common,
BBSList;
Type
UnixTime = Longint;
OldBBSListRecordType = { *.BBS file records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
RecordNum : LongInt; { Number OF the Record For Edit }
UserID : LongInt; { User ID OF person adding this }
BBSName : STRING[30]; { Name OF BBS }
SysOpName : STRING[30]; { SysOp OF BBS }
TelnetUrl : STRING[60]; { Telnet Urls }
WebSiteUrl : STRING[60]; { Web Site Url }
PhoneNumber : STRING[20]; { Phone number OF BBS }
Software : STRING[8]; { Software used by BBS }
Speed : STRING[8]; { Highest connect speed OF BBS }
Description : STRING[60]; { Description OF BBS }
Description2 : STRING[60]; { Second line OF descrition }
DateAdded : UnixTime; { Date entry was added }
DateEdited : UnixTime; { Date entry was last edited }
XA : STRING[8]; { sysop definable A }
XB : STRING[30]; { sysop definable B }
XC : STRING[30]; { sysop definable C }
XD : STRING[40]; { sysop definable D }
XE : STRING[60]; { sysop definable E }
XF : STRING[60]; { sysop definable F }
END;
NewBBSListRecordType = { New *.BBS file records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
RecordNum, { Number OF the Record For Edit }
UserID, { User ID OF person adding this }
MaxNodes : LongInt; { Maximum Number Of Nodes }
Port : Word; { Telnet Port }
BBSName : STRING[30]; { Name OF BBS }
SysOpName : STRING[30]; { SysOp OF BBS }
TelnetUrl : STRING[60]; { Telnet Urls }
WebSiteUrl : STRING[60]; { Web Site Url }
PhoneNumber : STRING[20]; { Phone number OF BBS }
Location : STRING[30]; { Location of BBS }
Software, { Software used by BBS }
SoftwareVersion : String[12]; { Software Version of BBS }
OS : STRING[20]; { Operating System of BBS }
Speed : STRING[8]; { Highest connect speed OF BBS }
Hours : STRING[20]; { Hours of Operation }
Birth : STRING[10]; { When The BBS Began }
Description : STRING[60]; { Description OF BBS }
Description2 : STRING[60]; { Second line OF descrition }
DateAdded : UnixTime; { Date entry was added }
DateEdited : UnixTime; { Date entry was last edited }
SDA : STRING[8]; { sysop definable A }
SDB : STRING[30]; { sysop definable B }
SDC : STRING[30]; { sysop definable C }
SDD : STRING[40]; { sysop definable D }
SDE : STRING[60]; { sysop definable E }
SDF : STRING[60]; { sysop definable F }
SDG : Word; { sysop definable G }
SDH, { sysop definable H }
SDI : Boolean; { sysop definable I }
END;
Var
OldBBSFile : File Of OldBBSListRecordType;
OldBBSDat : OldBBSListRecordType;
BBSFile : File Of NewBBSListRecordType;
BBSDat : NewBBSListRecordType;
i : Integer;
TempFile,
Dir,
BBSListDat : String;
Function GetDataFile : String;
Var
Old : String;
Begin
GetDir(0,BBSListDat);
BBSListDat := BBSListDat+'\DATA\BBSLIST.DAT';
GetDir(0,Old);
Old := Old+'\DATA\BBSLIST.OLD';
If Exist(Old) Then
Begin
WriteLn;
TextColor(12);
Write(' ', Old);
TextColor(4);
WriteLn(' exists. ');
TextColor(7);
WriteLn(' It seems you have already run this program. ');
TextColor(7);
WriteLn(' There is no need to run it again.');
WriteLn;
Halt;
End
Else If Exist(BBSListDat) Then
Begin
GetDataFile := BBSListDat;
Exit;
End
Else
Begin
WriteLn;
TextColor(12);
Write(' ',BBSListDat);
TextColor(4);
WriteLn(' doesn''t exist');
TextColor(7);
WriteLn(' Run this from inside your RENEGADE Home Dir.');
WriteLn;
Halt;
End;
End;
Begin { Main Program }
BBSListDat := GetDataFile; { Get BBSLIST.DAT or Quit }
TempFile := 'DATA\BBSTEMP.DAT';
Assign(OldBBSFile, BBSListDat);
Assign(BBSFile, TempFile);
Reset(OldBBSFile);
Rewrite(BBSFile);
Seek(OldBBSFile, 0);
Seek(BBSFile, 0);
WriteLn;
TextColor(3);
Write(' Converting Old BBS Records ');
For i := 1 to FileSize(OldBBSFile) Do
Begin
Delay(200);
TextColor(11);
Write('.');
Read(OldBBSFile, OldBBSDat);
BBSDat.RecordNum := OldBBSDat.RecordNum;
BBSDat.UserID := OldBBSDat.UserID;
BBSDat.BBSName := OldBBSDat.BBSName;
BBSDat.SysOpName := OldBBSDat.SysOpName;
BBSDat.TelnetUrl := OldBBSDat.TelnetUrl;
BBSDat.WebSiteUrl := OldBBSDat.WebSiteUrl;
BBSDat.PhoneNumber := OldBBSDat.PhoneNumber;
BBSDat.Software := OldBBSDat.Software;
BBSDat.Speed := OldBBSDat.Speed;
BBSDat.Description := OldBBSDat.Description;
BBSDat.Description2 := OldBBSDat.Description2;
BBSDat.DateAdded := OldBBSDat.DateAdded;
BBSDat.DateEdited := OldBBSDat.DateEdited;
BBSDat.SDA := OldBBSDat.XA;
BBSDat.SDB := OldBBSDat.XB;
BBSDat.SDC := OldBBSDat.XC;
BBSDat.SDD := OldBBSDat.XD;
BBSDat.SDE := OldBBSDat.XE;
BBSDat.SDF := OldBBSDat.XF;
Write(BBSFile, BBSDat);
Seek(OldBBSFile, i);
Seek(BBSFile, i);
End;
TextColor(3);
WriteLn(' Done!');
GetDir(0,Dir);
WriteLn;
TextColor(3);
Write(' Copying ');
TextColor(11);
Write(Dir,'\DATA\BBSLIST.DAT ');
TextColor(3);
Write('to ');
TextColor(11);
Write(Dir,'\DATA\BBSLIST.OLD ');
TextColor(3);
Write('...');
Rename(OldBBSFile,Dir+'\DATA\BBSLIST.OLD');
TextColor(3);
WriteLn(' Done!');
TextColor(3);
Write(' Moving ');
TextColor(11);
Write(Dir,'\DATA\BBSTEMP.DAT ');
TextColor(3);
Write('to ');
TextColor(11);
Write(Dir,'\DATA\BBSLIST.DAT ');
TextColor(3);
Write('...');
Rename(BBSFile,Dir+'\DATA\BBSLIST.DAT');
TextColor(3);
WriteLn(' Done!');
WriteLn;
Close(OldBBSFile);
Close(BBSFile);
End.