home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR21 / DEPTY309.ZIP / DEPARC.EXE / SCRIPTS.EXE / JOINTOP.DSL < prev    next >
Text File  |  1993-10-16  |  4KB  |  150 lines

  1. Script JoinTop;     (* Script to join a single topic on Cix         *)
  2.                     (* Redundant now that Cix does it internally    *)
  3.                     (* For Deputy Version 2.16 or later             *)
  4.                     (* Written by Michael Spalter, July 1992 V.1.0  *)
  5.                     (* Modified by Rod Ellery (rodders@cix) to show *)
  6.                     (* usage of ARRAY OF STRING constructions       *)
  7.                     (* This Version requires Deputy 3.01 or later   *)
  8.  
  9. VAR
  10. Whandle  : INTEGER;
  11. Result   : INTEGER;
  12. Resign   : INTEGER;
  13. idx      : INTEGER;
  14. OK       : BOOLEAN;
  15. Blanktop : STRING[15];
  16. ConfName : STRING[15];
  17. Topic    : STRING[15];
  18. TopicA   : ARRAY[0..17] OF STRING;
  19.  
  20. FUNCTION GrabName : STRING;
  21. VAR
  22.    Answer : INTEGER;
  23.    Single : CHAR;
  24. BEGIN
  25.    Topic:='';
  26.    WaitStr("'",1);
  27.    WaitStr('.',2);
  28.    Answer:=DoWait(10);
  29.    IF Answer<>1 THEN
  30.       RETURN('<BLANK>');
  31.       alarm;
  32.    END;
  33.    REPEAT
  34.       Single:=RecChar(10,FALSE);
  35.       IF ORD(Single)<>ORD("'") THEN
  36.         Topic:=Topic+Single;
  37.       END;
  38.    UNTIL ORD(Single)=ORD("'");
  39.    RETURN(Topic);
  40. END GrabName;
  41.  
  42. PROC ResTop (tname : STRING);
  43. BEGIN
  44.    IF Tname<>BlankTop THEN
  45.       SendStr('Resign ');
  46.       SendStr(ConfName);
  47.       SendStr(' ');
  48.       SendStr(Tname);
  49.       SendStr('\r');
  50.       DoWait(1);
  51.    END;
  52. END ResTop;
  53.  
  54. BEGIN
  55.    IF NOT DCD THEN
  56.       WrLn;
  57.       Write('You must be connected to Cix to use this script.');
  58.       WrLn;
  59.       HaltScript;
  60.    END;
  61.    BlankTop:='<BLANK>';
  62.    Escape(FALSE);
  63.    Cursor(TRUE);
  64.    REPEAT
  65.       Whandle:=Window(20,10,34,2,'Join a Single Topic',27);
  66.       UseWindow(WHandle);
  67.       GotoXY(1,1);
  68.       Write('Conference Name: ');
  69.       Read(ConfName);
  70.       CloseWindow(Whandle);
  71.       Escape(TRUE); Silent(TRUE);
  72.       IF ConfName<>'' THEN
  73.          ClrScr;
  74.          SendStr('JOIN ');
  75.          SendStr(ConfName);
  76.          SendStr('\r');
  77.          WaitStr('Topics are',1);
  78.          WaitStr('(y/n)?',2);
  79.          WaitStr('Joining',3);
  80.          Result:=DoWait(20);
  81.          IF (Result<1) OR (Result>3) THEN
  82.             WrLn;
  83.             Write('Unexpected result - Script aborting.\r');
  84.             HaltScript;
  85.          END;
  86.          IF (Result=1) OR (Result=3) THEN
  87.             WrLn;
  88.             ForeGnd(LCYAN);
  89.             Write('You are already a member - please resign then try again');
  90.             ForeGnd(LGrey);
  91.             WrLn;
  92.             WrLn;
  93.             Silent(FALSE);
  94.             HaltScript;
  95.          END;
  96.       END;
  97.    UNTIL (Result=2) OR (ConfName='');
  98.    IF ConfName='' THEN
  99.      HaltScript;
  100.    END;
  101.    SendStr('y\r');
  102.  
  103.    For idx := 0 to 17 DO
  104.      TopicA[idx]:=BlankTop;
  105.    END;
  106.  
  107.    Topic := Blanktop;
  108.    Topic := Grabname;
  109.  
  110.    While Topic <> BlankTop Do
  111.      idx := 0;
  112.  
  113.      While (TopicA[idx] <> Blanktop) AND (idx < 17) Do
  114.        idx := idx+1;
  115.      END;
  116.  
  117.      TopicA[idx] := Topic;
  118.      Topic := Blanktop;
  119.      Topic := Grabname;
  120.    End;
  121.  
  122.    SendStr('\r'); Silent(FALSE);
  123.  
  124.    Resign:=Menu(20,3,15,'Join Which Topic ?',
  125.                         '1  - '+TopicA[0],
  126.                         '2  - '+TopicA[1],
  127.                         '3  - '+TopicA[2],
  128.                         '4  - '+TopicA[3],
  129.                         '5  - '+TopicA[4],
  130.                         '6  - '+TopicA[5],
  131.                         '7  - '+TopicA[6],
  132.                         '8  - '+TopicA[7],
  133.                         '9  - '+TopicA[8],
  134.                         '10 - '+TopicA[9],
  135.                         '11 - '+TopicA[10],
  136.                         '12 - '+TopicA[11],
  137.                         '13 - '+TopicA[12],
  138.                         '14 - '+TopicA[13],
  139.                         '15 - '+TopicA[14],
  140.                         '16 - '+TopicA[15],
  141.                         '17 - '+TopicA[16],TopicA[17],1);
  142.  
  143.    TopicA[Resign] := BlankTop;
  144.  
  145.    For idx := 0 To 17 DO
  146.      ResTop(TopicA[idx]);
  147.    END;
  148.  
  149. END JoinTop;
  150.