home *** CD-ROM | disk | FTP | other *** search
- Script JoinTop; (* Script to join a single topic on Cix *)
- (* Redundant now that Cix does it internally *)
- (* For Deputy Version 2.16 or later *)
- (* Written by Michael Spalter, July 1992 V.1.0 *)
- (* Modified by Rod Ellery (rodders@cix) to show *)
- (* usage of ARRAY OF STRING constructions *)
- (* This Version requires Deputy 3.01 or later *)
-
- VAR
- Whandle : INTEGER;
- Result : INTEGER;
- Resign : INTEGER;
- idx : INTEGER;
- OK : BOOLEAN;
- Blanktop : STRING[15];
- ConfName : STRING[15];
- Topic : STRING[15];
- TopicA : ARRAY[0..17] OF STRING;
-
- FUNCTION GrabName : STRING;
- VAR
- Answer : INTEGER;
- Single : CHAR;
- BEGIN
- Topic:='';
- WaitStr("'",1);
- WaitStr('.',2);
- Answer:=DoWait(10);
- IF Answer<>1 THEN
- RETURN('<BLANK>');
- alarm;
- END;
- REPEAT
- Single:=RecChar(10,FALSE);
- IF ORD(Single)<>ORD("'") THEN
- Topic:=Topic+Single;
- END;
- UNTIL ORD(Single)=ORD("'");
- RETURN(Topic);
- END GrabName;
-
- PROC ResTop (tname : STRING);
- BEGIN
- IF Tname<>BlankTop THEN
- SendStr('Resign ');
- SendStr(ConfName);
- SendStr(' ');
- SendStr(Tname);
- SendStr('\r');
- DoWait(1);
- END;
- END ResTop;
-
- BEGIN
- IF NOT DCD THEN
- WrLn;
- Write('You must be connected to Cix to use this script.');
- WrLn;
- HaltScript;
- END;
- BlankTop:='<BLANK>';
- Escape(FALSE);
- Cursor(TRUE);
- REPEAT
- Whandle:=Window(20,10,34,2,'Join a Single Topic',27);
- UseWindow(WHandle);
- GotoXY(1,1);
- Write('Conference Name: ');
- Read(ConfName);
- CloseWindow(Whandle);
- Escape(TRUE); Silent(TRUE);
- IF ConfName<>'' THEN
- ClrScr;
- SendStr('JOIN ');
- SendStr(ConfName);
- SendStr('\r');
- WaitStr('Topics are',1);
- WaitStr('(y/n)?',2);
- WaitStr('Joining',3);
- Result:=DoWait(20);
- IF (Result<1) OR (Result>3) THEN
- WrLn;
- Write('Unexpected result - Script aborting.\r');
- HaltScript;
- END;
- IF (Result=1) OR (Result=3) THEN
- WrLn;
- ForeGnd(LCYAN);
- Write('You are already a member - please resign then try again');
- ForeGnd(LGrey);
- WrLn;
- WrLn;
- Silent(FALSE);
- HaltScript;
- END;
- END;
- UNTIL (Result=2) OR (ConfName='');
- IF ConfName='' THEN
- HaltScript;
- END;
- SendStr('y\r');
-
- For idx := 0 to 17 DO
- TopicA[idx]:=BlankTop;
- END;
-
- Topic := Blanktop;
- Topic := Grabname;
-
- While Topic <> BlankTop Do
- idx := 0;
-
- While (TopicA[idx] <> Blanktop) AND (idx < 17) Do
- idx := idx+1;
- END;
-
- TopicA[idx] := Topic;
- Topic := Blanktop;
- Topic := Grabname;
- End;
-
- SendStr('\r'); Silent(FALSE);
-
- Resign:=Menu(20,3,15,'Join Which Topic ?',
- '1 - '+TopicA[0],
- '2 - '+TopicA[1],
- '3 - '+TopicA[2],
- '4 - '+TopicA[3],
- '5 - '+TopicA[4],
- '6 - '+TopicA[5],
- '7 - '+TopicA[6],
- '8 - '+TopicA[7],
- '9 - '+TopicA[8],
- '10 - '+TopicA[9],
- '11 - '+TopicA[10],
- '12 - '+TopicA[11],
- '13 - '+TopicA[12],
- '14 - '+TopicA[13],
- '15 - '+TopicA[14],
- '16 - '+TopicA[15],
- '17 - '+TopicA[16],TopicA[17],1);
-
- TopicA[Resign] := BlankTop;
-
- For idx := 0 To 17 DO
- ResTop(TopicA[idx]);
- END;
-
- END JoinTop;
-