SB ALL @WW MSYS > FBB MAIL CONVERSION 1/3 { This program is a desperate (AND PROBABLY FUTILE) attempt to save the WW Packet Network the agony of all the duplicate messages that are now plaguing it. One of my reasons for switching (temporarily) to FBB from MSYS was to determine where the dupes were coming from. THEY ARE IN FACT HAPPENING, there is no denying it. Funny thing is, we seem to be able to tie it to the FBB guys... but we can't catch them doing it. And... they don't all do it! Here is a solution to the msystery (sp?) and a solution to the problem. When converting the active mail section of a MSYS bbs over to FBB, if exactly the right steps are not followed you will corrupt the integrity of your BID storage system. If each message that is taken off MSYS does not leave with itact BID information, there have to be duplicates. Given the awkwardness of mailfile exportation from MSYS, it is not surprising that there are as many "bad" BIDs out there as there are. Although I am not advocating "jumping ship" and moving from MSYS to FBB, I am offering this utility to allow sysops to make the conversion without corrupting the network. Please distribute this file widely. ************************************************************ From MSYS follow these steps: 1. Run houscleaning and kill all forwarded messages. 2. From the BBS, issue these commands: A. X 0 B. >messages.imp C. LL$ 1000 1. (when above step is finished, issue another > to close the file. D. Exit MSYS. 3. Run MSYS2FBB.EXE with a command line paramater giving full path/filename information to the file created above. Example: MSYS2FBB \MSYS\MESSAGES.IMP This will create a file called \FBB\mail.in. (\FBB MUST EXIST) 4. Commencer ton BBS. Bon chance! de WB0OIZ CONTINUED IN NEXT MESSAGE 2/3... PLEASE APPEND THESE 3 FILES TOGETHER TO PRODUCE THE SOURCE CODE. } /EX SB ALL @WW MSYS > FBB MAIL CONVERSION 2/3 {THIS IS A CONTINUATION OF A 3 PART FILE THAT WILL PROVIDE THE SOURCE CODE TO COMPILE A UTILITY THAT FACILITATES CONVERSION OF THE MAIL FILE FROM MSYS TO FBB.} PROGRAM MSYS2FBB; {COMPILED IN BORLAND TURBO PASCAL 5.5} var infile,outfile,readfile:text; instr1,instr2,intext:string; trstr:string[2]; fileidstr,tostr,fromstr,atstr1,atstr,msgnum:string[6]; bidstr:string[13]; subjectstr:string[40]; x,bpos:integer; {====================================================} procedure clearvars; begin fileidstr:=''; trstr:='';tostr:='';fromstr:='';atstr1:='';subjectstr:=''; atstr:='';msgnum:='';bidstr:='';instr1:='';instr2:=''; end; {====================================================} BEGIN Assign(infile,paramstr(1)); Assign(outfile,'\fbb\MAIL.IN'); reset(infile); rewrite(outfile); readln(infile,instr1); While not eof(infile) do begin clearvars; Readln(infile,instr1); Readln(infile,instr2); FILEIDstr:=copy(instr1,1,6); TRstr:=copy(instr1,7,2); TOstr:=copy(instr1,16,6); FROMstr:=copy(instr1,23,6); ATstr1:=copy(instr1,30,6); subjectSTR:=copy(instr1,44,length(instr1)-43); {************************************PROC TO TURN BIDSTR1 INTO PROPPER BID} bpos := pos('BID=',instr2)+3; x := 1; while instr2[bpos + x] <> ' ' do begin BIDstr[x] := instr2[bpos+x]; BIDstr[0] := chr(ord(x)); inc(x); end; {*********************************PROC TO TURN ATSTR1 INTO PROPER @AT STRING.} if pos('-',ATstr1) > 0 then ATstr := '' else if pos('=',ATstr1) > 0 then ATstr := '' else if pos(' ',ATstr1) > 0 then ATstr := '' else ATstr := ATstr1; {******************************************************CREATE MESSAGE HEADER} {CONTINUED IN NEXT MESSAGE 3/3... PLEASE APPEND THESE 3 FILES TOGETHER TO PRODUCE THE SOURCE CODE. } /EX SB ALL @WW MSYS > FBB MAIL CONVERSION 3/3 {THIS IS A CONTINUATION OF A 3 PART FILE THAT WILL PROVIDE THE SOURCE CODE TO COMPILE A UTILITY THAT FACILITATES CONVERSION OF THE MAIL FILE FROM MSYS TO FBB.} if ATstr = '' then writeln(outfile,'S',TRstr[1],' ',Tostr,' <',FROMstr,' $',BIDstr) else Writeln(outfile,'S',TRstr[1],' ',TOstr,' @',ATstr,' <', FROMstr,' $',BIDstr); Writeln(outfile,subjectSTR); {************************************************** GET FILEID AND READ FILE} x := 1; while FILEIDstr[x] = ' ' do inc(x); MSGNUM := copy(FILEIDstr,x,length(fileidstr)-x); assign(readfile,'\msys\mail\msg' + msgnum + '.dat'); writeln('Creating import for msys\mail\msg',msgnum,'.dat'); reset(readfile); readln(readfile,intext); writeln(outfile,intext); while not eof(readfile) do begin readln(readfile,intext); writeln(outfile,intext); end; close(readfile); writeln(outfile,'/EX'); end; {while not eof <<
>>} END. {IF YOU WOULD RATHER GET A COMPILED VERSION OF THIS PROGRAM, PLEASE CHECK THE CLEVELAND HAMNET BBS, W6RDH BBS OR CALL ME TO SET UP A SKED FOR TRANSFER OR SEND ME A DISK WITH A SASE.} /EX