home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / RADOOR30.ZIP / UOSYS.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-04-10  |  3.7 KB  |  126 lines

  1. {╔═════════════════════════════════════════════════════════════════════════╗
  2.  ║                                                                         ║
  3.  ║                   (c) CopyRight LiveSystems 1990, 1994                  ║
  4.  ║                                                                         ║
  5.  ║ Author    : Gerhard Hoogterp                                            ║
  6.  ║ FidoNet   : 2:282/100.5   2:283/7.33                                    ║
  7.  ║ BitNet    : GERHARD@LOIPON.WLINK.NL                                     ║
  8.  ║                                                                         ║
  9.  ║ SnailMail : Kremersmaten 108                                            ║
  10.  ║             7511 LC Enschede                                            ║
  11.  ║             The Netherlands                                             ║
  12.  ║                                                                         ║
  13.  ║        This module is part of the RADoor BBS doorwriters toolbox.       ║
  14.  ║                                                                         ║
  15.  ╚═════════════════════════════════════════════════════════════════════════╝}
  16. {$Define UseRADoor}  { When used together with RAdoor, the node and semafore }
  17.                      { Directory are known already                           }
  18.  
  19. Unit UOSys;
  20. Interface
  21. Uses  {$IfDef UseRADoor}
  22.          GlobInfo,
  23.       {$EndIf}
  24.       Dos;
  25.  
  26.  
  27. Type UserDoesString = String[75];
  28.      UserDoesObject = Object
  29.                         DoesWhat : UserDoesString;    { The string to write   }
  30.                         SemDir   : PathStr;           { Where to write        }
  31.                         Node     : Byte;              { The nodenumber        }
  32.                         Name     : String[12];        { The UsedDoes filename }
  33.  
  34.                         {$IfDef UseRADoor}
  35.                         Procedure Init( _Does : UserDoesString);
  36.                         {$Else}
  37.                         Procedure Init( _Node : Byte;
  38.                                         _Does : UserDoesString;
  39.                                         _Where: PathStr);
  40.                         {$EndIf}
  41.  
  42.                         Procedure SetIt;
  43.                         Procedure ReSetIt(_Does : UserDoesString);
  44.                         Procedure ClearIt;
  45.                         Procedure GetIt(Def : UserDoesString);
  46.  
  47.                       End;
  48.  
  49. Implementation
  50.  
  51. Var Tmp : Text;
  52.  
  53.  
  54. Function Nr2Str(Nr : Word;Len : Byte):String;
  55. Var Temp : String[20];
  56. Begin
  57. Str(Nr:Len,Temp);
  58. Nr2Str:=Temp;
  59. End;
  60.  
  61. {$IfDef UseRADoor}
  62. Procedure UserDoesObject.Init( _Does : UserDoesString);
  63. Begin
  64. Node:=GlobalInfo.Node;
  65. DoesWhat:=_Does;
  66. SemDir:=GlobalInfo.CommonDir;
  67. Name:='USERDOES.'+Nr2Str(Node,0);
  68. End;
  69. {$Else}
  70. Procedure UserDoesObject.Init( _Node : Byte;
  71.                                _Does : UserDoesString;
  72.                                _Where: PathStr);
  73. Begin
  74. Node:=_Node;
  75. DoesWhat:=_Does;
  76. SemDir:=_Where;
  77. Name:='USERDOES.'+Nr2Str(Node,0);
  78. End;
  79. {$EndIf}
  80.  
  81. Procedure UserDoesObject.SetIt;
  82. Begin
  83. Assign(Tmp,SemDir+Name);
  84. Rewrite(Tmp);
  85. WriteLn(Tmp,DoesWhat);
  86. Close(Tmp);
  87. If IoResult<>0
  88.    Then;
  89. End;
  90.  
  91. Procedure UserDoesObject.ReSetIt(_Does : UserDoesString);
  92. Begin
  93. DoesWhat:=_Does;
  94. SetIt;
  95. End;
  96.  
  97. Procedure UserDoesObject.ClearIt;
  98. Var Try : Byte;
  99. Begin
  100. Try:=3;
  101. Repeat
  102.  Assign(Tmp,SemDir+Name);
  103.  Erase(Tmp);
  104.  If IoResult<>0
  105.     Then Dec(Try)
  106.     Else Try:=0;
  107. Until Try=0;
  108. End;
  109.  
  110. Procedure UserDoesObject.GetIt(Def : UserDoesString);
  111. Begin
  112. Assign(Tmp,SemDir+Name);
  113. Reset(Tmp);
  114. If IoResult=0
  115.    Then Begin
  116.         ReadLn(Tmp,DoesWhat);
  117.         Close(Tmp);
  118.         End
  119.    Else DoesWhat:=Def;
  120. If IoResult<>0
  121.    Then;
  122. End;
  123.  
  124. End.
  125.  
  126.