home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 153.img / TELES.ZIP / CONVERT.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-07-23  |  18.9 KB  |  607 lines

  1. Uses
  2.   Crt,
  3.   Dos;
  4.  
  5.  
  6. CONST strlen=160;
  7.       maxusers=500;
  8.       dsaves : Integer = 0;
  9.  
  10. TYPE restrictions=(rlogon,rchat,rvalidate,rbackspace,ramsg,rpostan,
  11.                    rpost,remail,rvoting,rmsg);
  12.      astr=string[160];
  13.      acrq='@'..'G';
  14.      newtyp=(rp,lt,rm);
  15.      deflts=(spcsr,onekey,wordwrap,pause,mmnu,ansi,color,music);
  16.      pnr=record name:string[40]; number:string[14]; hs:byte; end;
  17.      anontyp=(no,yes,forced,dearabby);
  18.      ansttype=(postn,emailn,pana,sanm,cosysop,lcosysop);
  19.      opts=(alert,smw,nomail);
  20.      dlnscan=set of 0..39;
  21.      emary=array[1..20] of integer;
  22.      clrs=array[false..true,1..8] of byte;
  23.      clrs2=array[false..true,0..9] of byte;
  24.      slr=record
  25.            ttime:byte;
  26.            mallowed:integer;
  27.            emails,posts:byte;
  28.            anst:set of ansttype;
  29.          end;
  30.      messages=record
  31.                 ltr:char;
  32.                 number:integer;
  33.                 ext:byte;
  34.               end;
  35.      smalrec=record
  36.                name:string[25];
  37.                number:integer;
  38.              end;
  39.      userrec=record
  40.                name:string[21];
  41.                realname:string[18];
  42.                deleted:boolean;
  43.                pw:string[8];
  44.                ph:string[12];
  45.                waiting:byte;
  46.                laston:string[10];
  47.                loggedon:integer;
  48.                msgpost:integer;
  49.                emailsent:integer;
  50.                feedback:integer;
  51.                linelen:byte;
  52.                pagelen:byte;
  53.                defaults:set of deflts;
  54.                ontoday:byte;
  55.                illegal:byte;
  56.                ttimeon:real;
  57.                dlnscn:dlnscan;
  58.                sl:byte;
  59.                ac:set of restrictions;
  60.                ar:set of acrq;
  61.                qscan:array[1..19] of messages;
  62.                qscn:array[1..19] of boolean;
  63.                macro:array[1..2] of string[79];
  64.                comptype:byte;
  65.                option:set of opts;
  66.                vote:array[1..9] of byte;
  67.                sbn:byte;
  68.                dsl:byte;
  69.                uploads,downloads:integer;
  70.                uk,dk:integer;
  71.                age:byte;
  72.                sex:char;
  73.                note:string[39];
  74.                forusr:integer;
  75.                cols:clrs;                (* Res[2] will be last file area *)
  76.                res:array[1..70] of byte; (* Res[1] will be last msg base *)
  77.                filepoints:integer;
  78.                citystate:string[26];
  79.                street:string[21];
  80.                zipcode:string[10];
  81.                occupation:string[40];
  82.                wherebbs:string[40];
  83.                lockedout:boolean;
  84.                lockedfile:string[8];
  85.                computer:string[14];
  86.                cols2:clrs2;
  87.              end;
  88.      userrec2=record
  89.                name:string[21];
  90.                realname:string[21];
  91.                deleted:boolean;
  92.                pw:string[20];
  93.                ph:string[12];
  94.                waiting:byte;
  95.                laston:string[10];
  96.                loggedon:integer;
  97.                msgpost:integer;
  98.                emailsent:integer;
  99.                feedback:integer;
  100.                linelen:byte;
  101.                pagelen:byte;
  102.                defaults:set of deflts;
  103.                ontoday:byte;
  104.                illegal:byte;
  105.                ttimeon:real;
  106.                dlnscn:dlnscan;
  107.                sl:byte;
  108.                ac:set of restrictions;
  109.                ar:set of acrq;
  110.                qscan:array[1..39] of messages;
  111.                qscn:array[1..39] of boolean;
  112.                macro:array[1..2] of string[79];
  113.                comptype:byte;
  114.                option:set of opts;
  115.                vote:array[1..20] of byte;
  116.                sbn:byte;
  117.                dsl:byte;
  118.                uploads,downloads:integer;
  119.                uk,dk:integer;
  120.                age:byte;
  121.                sex:char;
  122.                note:string[39];
  123.                forusr:integer;
  124.                res:array[1..70] of byte; (* Res[1] will be last msg base *)
  125.                filepoints:integer;
  126.                citystate:string[26];
  127.                street:string[21];
  128.                zipcode:string[10];
  129.                occupation:string[40];
  130.                wherebbs:string[40];
  131.                lockedout:boolean;
  132.                lockedfile:string[8];
  133.                computer:string[14];
  134.                cols:clrs2;
  135.              end;
  136.       boardrec=record
  137.                  name:string[30];
  138.                  filename:string[12];
  139.                  sl:byte;
  140.                  maxmsgs:byte;
  141.                  pw:string[10];
  142.                  anonymous:anontyp;
  143.                  ar:acrq;
  144.                  key:char;
  145.                  postsl:byte;
  146.                end;
  147.       msgstat=(validated,unvalidated,deleted);
  148.       messagerec=record
  149.                    title:string[30];
  150.                    messagestat:msgstat;
  151.                    message:messages;
  152.                    owner:integer;
  153.                    date:integer;
  154.                    mage:byte;
  155.                  end;
  156.       systatrec=record
  157.                   boardpw:string[8];
  158.                   sysoppw:string[8];
  159.                   hmsg:messages;
  160.                   users:integer;
  161.                   lastdate:string[8];
  162.                   callernum:integer;
  163.                   activetoday:integer;
  164.                   callstoday:integer;
  165.                   msgposttoday:integer;
  166.                   emailtoday:integer;
  167.                   fbacktoday:integer;
  168.                   uptoday:integer;
  169.                   closedsystem:boolean;
  170.                   comport:byte;
  171.                   maxbaud:integer;
  172.                   msgpath:string[79];
  173.                   gfiledate:string[8];
  174.                   lowtime,hitime:integer;
  175.                   res:array[1..185] of byte;
  176.                   sysopcolor:byte;
  177.                   usercolor:byte;
  178.                   maxlines:byte;
  179.                   special:boolean;
  180.                   clearmsg:boolean;
  181.                   bbspw:string[8];
  182.                   matrix:boolean;
  183.                   engage:string[55];
  184.                   endchat:string[55];
  185.                   alias:boolean;
  186.                   echoc:astr;
  187.                   sysopin:astr;
  188.                   sysopout:astr;
  189.                   note:array[1..2] of string[79];
  190.                   lprompt:astr;
  191.                   lansi:boolean;
  192.                   init:astr;
  193.                   wait:astr;
  194.                   app:boolean;
  195.                   fone:boolean;
  196.                   sysopmacro:array[1..9] of string[72];
  197.                   forcevoting:boolean;
  198.                   multitask:boolean;
  199.                   gfilepath:string[79];
  200.                   pause:string[20];
  201.                   hangup:string[40];
  202.                   answer:string[40];
  203.                   result300:integer;
  204.                   result1200:integer;
  205.                   result2400:integer;
  206.                   nocarrier:integer;
  207.                   filesl:byte;
  208.                   tries:byte;
  209.                   newsl:byte;
  210.                   newdsl:byte;
  211.                   newar:set of acrq;
  212.                   newac:set of restrictions;
  213.                   newfp:integer;
  214.                   newuk:integer;
  215.                   bwindow:boolean;
  216.                   bsdelay:byte;
  217.                   mcimsg:boolean;
  218.                   b300lowtime,b300hitime:integer;
  219.                   dllowtime,dlhitime:integer;
  220.                   b300dllowtime,b300dlhitime:integer;
  221.                   lock300:boolean;
  222.                   result4800:integer;
  223.                   result9600:integer;
  224.                   SysopFirst:String[12];
  225.                   SysopLast:String[16];
  226.                   BBSName:String[40];
  227.                   BBSPhone:String[12];
  228.                   ANSIq:String[40];
  229.                   WantQuote:Boolean;
  230.                   Menupath:string[79];
  231.                   autosl:byte;
  232.                   autodsl:byte;
  233.                   autoar:set of acrq;
  234.                   autoac:set of restrictions;
  235.                end;
  236.       systatrec2=record
  237.                   boardpw:string[20];
  238.                   sysoppw:string[20];
  239.                   hmsg:messages;
  240.                   users:integer;
  241.                   lastdate:string[8];
  242.                   callernum:integer;
  243.                   activetoday:integer;
  244.                   callstoday:integer;
  245.                   msgposttoday:integer;
  246.                   emailtoday:integer;
  247.                   fbacktoday:integer;
  248.                   uptoday:integer;
  249.                   closedsystem:boolean;
  250.                   comport:byte;
  251.                   maxbaud:integer;
  252.                   msgpath:string[79];
  253.                   gfiledate:string[8];
  254.                   lowtime,hitime:integer;
  255.                   res:array[1..185] of byte;
  256.                   sysopcolor:byte;
  257.                   usercolor:byte;
  258.                   maxlines:byte;
  259.                   special:boolean;
  260.                   clearmsg:boolean;
  261.                   bbspw:string[20];
  262.                   matrix:boolean;
  263.                   engage:string[79];
  264.                   endchat:string[79];
  265.                   alias:boolean;
  266.                   echoc:char;
  267.                   sysopin:string[79];
  268.                   sysopout:string[79];
  269.                   note:array[1..2] of string[79];
  270.                   lprompt:string[40];
  271.                   lansi:boolean;
  272.                   init:string[40];
  273.                   wait:string[79];
  274.                   app:boolean;
  275.                   fone:boolean;
  276.                   sysopmacro:array[1..9] of string[72];
  277.                   forcevoting:boolean;
  278.                   multitask:boolean;
  279.                   gfilepath:string[79];
  280.                   pause:string[79];
  281.                   hangup:string[40];
  282.                   answer:string[40];
  283.                   result300:integer;
  284.                   result1200:integer;
  285.                   result2400:integer;
  286.                   nocarrier:integer;
  287.                   tries:byte;
  288.                   newsl:byte;
  289.                   newdsl:byte;
  290.                   newar:set of acrq;
  291.                   newac:set of restrictions;
  292.                   newfp:integer;
  293.                   newuk:integer;
  294.                   bwindow:boolean;
  295.                   bsdelay:byte;
  296.                   mcimsg:boolean;
  297.                   b300lowtime,b300hitime:integer;
  298.                   dllowtime,dlhitime:integer;
  299.                   b300dllowtime,b300dlhitime:integer;
  300.                   lock300:boolean;
  301.                   result4800:integer;
  302.                   result9600:integer;
  303.                   SysopFirst:String[12];
  304.                   SysopLast:String[16];
  305.                   BBSName:String[40];
  306.                   BBSPhone:String[12];
  307.                   ANSIq:String[40];
  308.                   WantQuote:Boolean;
  309.                   Menupath:string[79];
  310.                   autosl:byte;
  311.                   autodsl:byte;
  312.                   autoar:set of acrq;
  313.                   autoac:set of restrictions;
  314.                end;
  315.       blk=array[1..255] of byte;
  316.       mailrec=record
  317.                 title:string[30];
  318.                 from,destin:integer;
  319.                 msg:messages;
  320.                 date:integer;
  321.                 mage:byte;
  322.               end;
  323.       gft=record
  324.             num:integer;
  325.             title:string[40];
  326.             filen:string[12];
  327.           end;
  328.       smr=record
  329.             msg:astr;
  330.             destin:integer;
  331.           end;
  332.       vdatar=record
  333.                question:string[79];
  334.                numa:integer;
  335.                answ:array[0..9] of record
  336.                       ans:string[25];
  337.                       numres:integer;
  338.                     end;
  339.              end;
  340.       vdatar2=record
  341.                question:string[79];
  342.                numa:integer;
  343.                answ:array[0..9] of record
  344.                       ans:string[25];
  345.                       numres:integer;
  346.                     end;
  347.              end;
  348.       ulrec=record
  349.               name:string[25];
  350.               filename:string[12];
  351.               password:string[10];
  352.               dsl:byte;
  353.               maxfiles:integer;
  354.               key:char;
  355.               ulpath:string[39];
  356.               dlpath:string[40];
  357.               agereq:byte;
  358.               ar:acrq;
  359.             end;
  360.       ulfrec=record
  361.                filename:string[12];
  362.                description:string[60];
  363.                filepoints:integer;
  364.                res:array[1..15] of byte;
  365.                nacc:integer;
  366.                ft:byte;
  367.                blocks:integer;
  368.                owner:integer;
  369.                date:string[8];
  370.                daten:integer;
  371.              end;
  372.       strptr=^strrec;
  373.       strrec=record
  374.                i:astr;
  375.                next,last:strptr;
  376.              end;
  377.       zlogt=record
  378.               date:string[8];
  379.               active,calls,post,email,fback,up:integer;
  380.             end;
  381. {    expro=record
  382.              descr:string[30];
  383.              rcmd:string[50];
  384.              scmd:string[50];
  385.              xferok:integer;
  386.            end;}
  387.  
  388.  
  389. CONST dcols:clrs=((7,7,15,15,15,112,7,143),(3,1,11,9,14,31,4,140));
  390.       dcols2:clrs2=((15,7,7,15,15,15,112,7,143,7),(15,3,1,11,9,14,31,4,140,10));
  391.  
  392. var
  393.     ulf:file of ulrec;
  394.     uboards:array[0..19] of ulrec;
  395.     vdata:file of vdatar;
  396.     vdata2:file of vdatar;
  397.     vd:vdatar;
  398.     Vd2:Vdatar;
  399.     uu:ulrec;
  400.     maxulb:integer;
  401.     u:userrec;
  402.     u1:userrec2;
  403.     uf:file of userrec;
  404.     uf1:file of userrec2;
  405.     nn:integer;
  406.     s:systatrec;
  407.     s1:systatrec2;
  408.     systat:systatrec;
  409.     systatf:file of systatrec;
  410.     systatf1:file of systatrec2;
  411.     sys:systatrec;
  412.  
  413. var i:integer; c:string[255]; path:astr; dum:astr;
  414. begin
  415.   nn:=0;
  416.   clrscr;
  417.   writeln('Version 1.6a--');
  418.   writeln(' This is Telegard conversion program.  If you have already ran it');
  419.   writeln('don''t run it again, or it will crash your BBS forever.');
  420.   writeln;
  421.   writeln('If you need to, press cntrl-c before its too late <to abort>...');
  422.   delay(2000);
  423.   clrscr;
  424.   textcolor(10);
  425.   Writeln('   -> Telegard BBS System Version 1.6a <-');
  426.   Writeln('Conversion Kit from Versions 1.5b, c, d, or e.');
  427.   writeln;
  428.   writeln; textcolor(12);
  429.   assign(systatf,'status.dat');
  430.   reset(systatf); read(systatf,systat);close(systatf);
  431.   path:=systat.gfilepath;
  432.   write('- Converting VOTING.DAT');
  433.   assign(vdata,path+'voting.dat');
  434.   reset(vdata); seek(vdata,filesize(vdata));
  435.   vd.question:='<< NO QUESTION >>'; vd.numa:=0;
  436.   for i:=10 to 20 do write(vdata,vd);
  437.   close(vdata);
  438.   assign(uf,path+'user.lst');
  439.   assign(uf1,path+'user.cnv');
  440.   reset(uf);
  441.   rewrite(uf1);
  442.   writeln('- Converting user record # '); textcolor(11);
  443.   while not eof(uf) do begin
  444.     nn:=nn+1; gotoxy(28,6); write(nn);
  445.     read(uf,u);
  446.     u1.name:=u.name;
  447.     u1.realname:=u.realname;
  448.     if u.deleted=true then u1.deleted:=true else u1.deleted:=false;
  449.     {u.deleted;}
  450.   u1.pw:=u.pw;
  451.   u1.ph:=u.ph;
  452.   u1.waiting:=u.waiting;
  453.   u1.laston:=u.laston;
  454.   u1.loggedon:=u.loggedon;
  455.   u1.msgpost:=u.msgpost;
  456.   u1.emailsent:=u.emailsent;
  457.   u1.feedback:=u.feedback;
  458.   u1.linelen:=u.linelen;
  459.   u1.pagelen:=u.pagelen;
  460.   u1.defaults:=u.defaults;
  461.   u1.ontoday:=u.ontoday;
  462.   u1.illegal:=u.illegal;
  463.   u1.ttimeon:=u.ttimeon;
  464.   u1.dlnscn:=u.dlnscn;
  465.   u1.sl:=u.sl;
  466.   u1.ac:=u.ac;
  467.   u1.ar:=u.ar;
  468.   for i:=1 to 19 do u1.qscan[i]:=u.qscan[i];
  469.   for i:=20 to 39 do begin
  470.     u1.qscan[i].ltr:='A'; u1.qscan[i].number:=-32767;
  471.   end;
  472.   for i:=1 to 19 do if u.qscn[i]=true then u1.qscn[i]:=true else u1.qscn[i]:=false;
  473.   for i:=20 to 39 do u1.qscn[i]:=true;
  474.   u1.macro[1]:=u.macro[1];
  475.   u1.macro[2]:=u.macro[2];
  476.   u1.comptype:=u.comptype;
  477.   u1.option:=u.option;
  478.   for i:=1 to 9 do u1.vote[i]:=u.vote[i];
  479.   for i:=10 to 20 do u1.vote[i]:=0;
  480.   u1.sbn:=u.sbn;
  481.   u1.dsl:=u.dsl;
  482.   u1.uploads:=u.uploads;
  483.   u1.downloads:=u.downloads;
  484.   u1.uk:=u.uk; u1.dk:=u.dk;
  485.   u1.age:=u.age;
  486.   u1.sex:=u.sex;
  487.   u1.note:=u.note;
  488.   u1.forusr:=u.forusr;
  489.   for i:=1 to 70 do u1.res[i]:=u.res[i];
  490.   u1.filepoints:=u.filepoints;
  491.   u1.citystate:=u.citystate;
  492.   u1.street:=u.street;
  493.   u1.zipcode:=u.zipcode;
  494.   u1.occupation:=u.occupation;
  495.   u1.wherebbs:=u.wherebbs;
  496.   if u.lockedout=true then u1.lockedout:=true else u1.lockedout:=false;
  497.   u1.lockedfile:=u.lockedfile;
  498.   u1.computer:=u.computer;
  499.   u1.cols:=u.cols2;
  500.     write(uf1,u1);
  501.   end;
  502.   close(uf1);
  503.   close(uf);
  504.   erase(uf);
  505.   rename(uf1,path+'user.lst');
  506.   writeln;
  507.   textcolor(12);
  508.   writeln('- Converting STATUS.DAT');
  509.   assign(systatf,'status.dat');
  510.   assign(systatf1,'status1.dat');
  511.   reset(systatf);
  512.   read(systatf,s);
  513.   close(systatf);
  514.   s1.boardpw:=s.boardpw;
  515.   s1.sysoppw:=s.sysoppw;
  516.   s1.hmsg:=s.hmsg;
  517.   s1.users:=s.users;
  518.   s1.lastdate:=s.lastdate;
  519.   s1.callernum:=s.callernum;
  520.   s1.activetoday:=s.activetoday;
  521.   s1.callstoday:=s.callstoday;
  522.   s1.msgposttoday:=s.msgposttoday;
  523.   s1.fbacktoday:=s.fbacktoday;
  524.   s1.uptoday:=s.uptoday;
  525.   s1.closedsystem:=s.closedsystem;
  526.   s1.comport:=s.comport;
  527.   s1.maxbaud:=s.maxbaud;
  528.   s1.msgpath:=s.msgpath;
  529.   s1.gfiledate:=s.gfiledate;
  530.   s1.hitime:=s.hitime;
  531.   s1.lowtime:=s.lowtime;
  532.   for i:=1 to 185 do s1.res[i]:=s.res[i];
  533.   s1.sysopcolor:=s.sysopcolor;
  534.   s1.usercolor:=s.usercolor;
  535.   s1.maxlines:=s.maxlines;
  536.   if s.special then s1.special:=true else s1.special:=false;
  537.   if s.clearmsg then s1.clearmsg:=true else s1.clearmsg:=false;
  538.   s1.bbspw:=s.bbspw;
  539.   s1.matrix:=s.matrix;
  540.   s1.b300dllowtime:=s.b300dllowtime;
  541.   s1.b300dlhitime:=s.b300dlhitime;
  542.   s1.engage:=s.engage;
  543.   s1.endchat:=s.endchat;
  544.   s1.alias:=s.alias;
  545.   s1.echoc:=s.echoc[1];
  546.   s1.sysopin:=s.sysopin;
  547.   s1.sysopout:=s.sysopout;
  548.   s1.note[1]:=s.note[1];
  549.   s1.note[2]:=s.note[2];
  550.   s1.lprompt:=s.lprompt;
  551.   s1.lansi:=s.lansi;
  552.   s1.init:=s.init;
  553.   s1.wait:=s.wait;
  554.   s1.app:=s.app;
  555.   s1.fone:=s.fone;
  556.   for i:=1 to 9 do s1.sysopmacro[i]:=s.sysopmacro[i];
  557.   s1.forcevoting:=s.forcevoting;
  558.   s1.multitask:=s.multitask;
  559.   s1.gfilepath:=s.gfilepath;
  560.   s1.pause:=s.pause;
  561.   s1.hangup:=s.hangup;
  562.   s1.answer:=s.answer;
  563.   s1.result300:=s.result300;
  564.   s1.result1200:=s.result1200;
  565.   s1.result2400:=s.result2400;
  566.   s1.nocarrier:=s.nocarrier;
  567.   s1.tries:=s.tries;
  568.   s1.newsl:=s.newsl;
  569.   s1.newdsl:=s.newdsl;
  570.   s1.newar:=s.newar;
  571.   s1.newac:=s.newac;
  572.   s1.newfp:=s.newfp;
  573.   s1.newuk:=s.newuk;
  574.   s1.bwindow:=s.bwindow;
  575.   s1.bsdelay:=s.bsdelay;
  576.   s1.mcimsg:=s.mcimsg;
  577.   s1.b300lowtime:=s.b300lowtime;
  578.   s1.b300hitime:=s.b300hitime;
  579.   s1.dllowtime:=s.dllowtime;
  580.   s1.dlhitime:=s.dlhitime;
  581.   s1.emailtoday:=s.emailtoday;
  582.   s1.lock300:=s.lock300;
  583.   s1.result4800:=s.result4800;
  584.   s1.result9600:=s.result9600;
  585.   s1.sysopfirst:=s.sysopfirst;
  586.   s1.sysoplast:=s.sysoplast;
  587.   s1.bbsname:=s.bbsname;
  588.   s1.bbsphone:=s.bbsphone;
  589.   s1.ansiq:=s.ansiq;
  590.   if s.wantquote then s1.wantquote:=true else s1.wantquote:=false;
  591.   s1.menupath:=s.menupath;
  592.   s1.autosl:=s.autosl;
  593.   s1.autodsl:=s.autodsl;
  594.   s1.autoar:=s.autoar;
  595.   s1.autoac:=s.autoac;
  596.   rewrite(systatf1);
  597.   write(systatf1,s1);
  598.   close(systatf1);
  599.   erase(systatf);
  600.   rename(systatf1,'status.dat');
  601.   textcolor(9);
  602.   writeln('■ Conversion Complete!');
  603. end.
  604.  
  605.  
  606.  
  607.