home *** CD-ROM | disk | FTP | other *** search
- {╔═════════════════════════════════════════════════════════════════════════╗
- ║ ║
- ║ (c) CopyRight LiveSystems 1990, 1994 ║
- ║ ║
- ║ Author : Gerhard Hoogterp ║
- ║ FidoNet : 2:282/100.5 2:283/7.33 ║
- ║ BitNet : GERHARD@LOIPON.WLINK.NL ║
- ║ ║
- ║ SnailMail : Kremersmaten 108 ║
- ║ 7511 LC Enschede ║
- ║ The Netherlands ║
- ║ ║
- ║ This module is part of the RADoor BBS doorwriters toolbox. ║
- ║ ║
- ╚═════════════════════════════════════════════════════════════════════════╝}
- {$Define UseRADoor} { When used together with RAdoor, the node and semafore }
- { Directory are known already }
-
- Unit UOSys;
- Interface
- Uses {$IfDef UseRADoor}
- GlobInfo,
- {$EndIf}
- Dos;
-
-
- Type UserDoesString = String[75];
- UserDoesObject = Object
- DoesWhat : UserDoesString; { The string to write }
- SemDir : PathStr; { Where to write }
- Node : Byte; { The nodenumber }
- Name : String[12]; { The UsedDoes filename }
-
- {$IfDef UseRADoor}
- Procedure Init( _Does : UserDoesString);
- {$Else}
- Procedure Init( _Node : Byte;
- _Does : UserDoesString;
- _Where: PathStr);
- {$EndIf}
-
- Procedure SetIt;
- Procedure ReSetIt(_Does : UserDoesString);
- Procedure ClearIt;
- Procedure GetIt(Def : UserDoesString);
-
- End;
-
- Implementation
-
- Var Tmp : Text;
-
-
- Function Nr2Str(Nr : Word;Len : Byte):String;
- Var Temp : String[20];
- Begin
- Str(Nr:Len,Temp);
- Nr2Str:=Temp;
- End;
-
- {$IfDef UseRADoor}
- Procedure UserDoesObject.Init( _Does : UserDoesString);
- Begin
- Node:=GlobalInfo.Node;
- DoesWhat:=_Does;
- SemDir:=GlobalInfo.CommonDir;
- Name:='USERDOES.'+Nr2Str(Node,0);
- End;
- {$Else}
- Procedure UserDoesObject.Init( _Node : Byte;
- _Does : UserDoesString;
- _Where: PathStr);
- Begin
- Node:=_Node;
- DoesWhat:=_Does;
- SemDir:=_Where;
- Name:='USERDOES.'+Nr2Str(Node,0);
- End;
- {$EndIf}
-
- Procedure UserDoesObject.SetIt;
- Begin
- Assign(Tmp,SemDir+Name);
- Rewrite(Tmp);
- WriteLn(Tmp,DoesWhat);
- Close(Tmp);
- If IoResult<>0
- Then;
- End;
-
- Procedure UserDoesObject.ReSetIt(_Does : UserDoesString);
- Begin
- DoesWhat:=_Does;
- SetIt;
- End;
-
- Procedure UserDoesObject.ClearIt;
- Var Try : Byte;
- Begin
- Try:=3;
- Repeat
- Assign(Tmp,SemDir+Name);
- Erase(Tmp);
- If IoResult<>0
- Then Dec(Try)
- Else Try:=0;
- Until Try=0;
- End;
-
- Procedure UserDoesObject.GetIt(Def : UserDoesString);
- Begin
- Assign(Tmp,SemDir+Name);
- Reset(Tmp);
- If IoResult=0
- Then Begin
- ReadLn(Tmp,DoesWhat);
- Close(Tmp);
- End
- Else DoesWhat:=Def;
- If IoResult<>0
- Then;
- End;
-
- End.
-
-