RemoteAccess Data Input/Output ============================== (C) 1994, 1995 Brian Spencer All rights reserved LICENCE & WARRANTY ------------------ RemoteAccess Data Input/Output (RADIO) is copyright (C) 1994, 1995 by Brian Spencer. This is NOT public domain software. You may use this program for free. You may copy and distribute this program and its related files for free, provided there is no fee for the recipient. Imposing a file ratio or other electronic bartering system on this program and its related files will earn you a grim facial expression from me. This program and its documentation may not be altered in any way. This program is provided AS IS. I MAKE NO WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. USE AT YOUR OWN RISK! INTRODUCTION ------------ RemoteAccess Data Input/Output (RADIO) is a program that enables a SysOp who runs RemoteAccess to handle system data that is otherwise accessible only to the BBS and to third-party software. When the data is converted to a generic format, it can be easily handled by a wider range of software. There is much more potential in that. This program was written for Doug Cochrane, who wanted the ability to edit the userlist with his database system. Consequently, this program's scope is limited to the userlist. The userlist data can be exported as comma-delimited field or fixed- length field data. Also, a simple report can be drawn up. Importing was planned, but due to timely personal difficulties, development has been put on hold. What this means is that you can view and arrange the data, but you cannot re-introduce it back into the original userlist. RADIO is based on the RemoteAccess 2.00 structures, and currently supports version 2.02. I've taken a few liberties in the Pascal -> C translation, but don't anticipate any real-world problems. No special provisions have been made for file-sharing environments. [RemoteAccess Data Input/Output - Page 1] INSTRUCTIONS ------------ RADIO can be installed anywhere. It is recommended that until you are comfortable with its operation you should place RADIO in its own empty directory, along with a copy of the userlist (USERS.BBS). RADIO will work best when there is plenty of drive space provided. A disc cache is recommended. RADIO has been designed to run in only 64 kilobytes of RAM and to run on all PC's with almost any version of DOS. Type RADIO alone on the command line to get a description of its command syntax. You will see the following: RADIO OUT [user path] (Export mode) RADIO REPORT [user path] (Simple report) RADIO supports two modes: Export and Report. Both of these modes implies an action to take on the userlist. You indicate the mode you want to use by including OUT or REPORT as the first parameter. When exporting data, you must also specify the type of data to be written, either COMMA-delimited fields or FIXED-length fields, depending on preference and available technology. If you choose to report, a file name for the output must be included. In either mode, an optional user path can be included. This path is where the user files are located, typically C:\RA or C:\RA\MSGBASE. If you don't include a path, RADIO will look for the userlist in the current directory. If you choose to export data, RADIO will write two files in the current directory: USERS.TXT and COMBINED.TXT. The first is the parent data, containing most of the important information such as user name, phone number, etc. COMBINED.TXT is the child data and lists the message areas that a user has selected for combined reading. The user records in these files have a one-to-many relationship, and this relationship is maintained by an arbitrary record number in the first field of both files. The following table describes all the fields of a user record contained in the USERS.TXT file: FIELD TYPE SIZE DESCRIPTION 1 Integer 7 Record number (zero-based) 2 Char 35 User's full name 3 Char 35 User's registered handle or alias 4 Char 25 Where the user is calling from 5 Char 8 User's password, CRC32 hexadecimal format 6 Integer 5 Security level (1-65535, 0 to lock out) 7 Char 15 Home/voice phone number 8 Char 15 Business/data phone number 9 Char 8 A Flags (- or X) 10 Char 8 B Flags (- or X) 11 Char 8 C Flags (- or X) 12 Char 8 D Flags (- or X) 13 Integer 7 Number of credits remaining 14 Integer 7 Number of credits pending deduction 15 Integer 5 Group number assigned to 16 Char 1 Sex (M[ale], F[emale], or U[nknown]) [RemoteAccess Data Input/Output - Page 2] 17 Char 35 User name that messages are forwarded to 18 Char 50 User's Organization, if any 19 Char 50 Address line 1 20 Char 50 Address line 2 21 Char 50 Address line 3 22 Char 80 Information comment 23 Char 5 Time of last call 24 Char 8 Date of last call 25 Char 8 Date of first call 26 Char 8 Subscription expiration date 27 Char 8 Date of birth 28 Integer 6 No. of minutes used on last call (+ve, -ve) 29 Integer 5 Length of screen display 30 Integer 3 Width of screen display 31 Integer 3 Number of days since last password change 32 Integer 3 Number of days since last date of birth check 33 Char 9 Date entry and display format 34 Boolean 1 Is the user marked for deletion? 35 Boolean 1 Send clear screen codes? 36 Boolean 1 Pause at the end of each screen page? 37 Boolean 1 Send ANSI codes? 38 Boolean 1 Never delete this user during a pack? 39 Boolean 1 Ignore download restrictions? 40 Boolean 1 Use the full screen message editor? 41 Boolean 1 Ignore on-line messages from other users? 42 Boolean 1 Use hot-keys? 43 Boolean 1 Send AVATAR codes? 44 Boolean 1 Use the full screen message viewer? 45 Boolean 1 Hidden from the user and other caller lists? 46 Boolean 1 Allowed to override paging restrictions? 47 Boolean 1 Exclude EchoMail from mail-box scans? 48 Boolean 1 Is this a guest account record? 49 Boolean 1 Allow user to accrue a negative credit balance? 50 Integer 7 Total number of files uploaded 51 Integer 7 Total number of files downloaded 52 Integer 10 Total kilobytes of all files uploaded 53 Integer 10 Total kilobytes of all files downloaded 54 Integer 7 Total kilobytes of all files downloaded today 55 Integer 5 Total number of messages posted 56 Integer 7 Highest message number read 57 Integer 7 Total number of calls 58 Integer 5 Last message area the user had selected 59 Integer 5 Last file area the user had selected 60 Integer 5 Last file group the user had selected 61 Integer 5 Last message group the user had selected 62 Char 1 Default file transfer protocol ("@" for none) 63 Integer 3 Language number selected The following table describes all the fields of a user record contained in the COMBINED.TXT file: FIELD TYPE SIZE DESCRIPTION 1 Integer 7 Parent record number (zero-based) 2 Integer 5 Area number for combined reading (up to 200) [RemoteAccess Data Input/Output - Page 3] When using comma-delimited fields, all CHAR fields are delimited by quotation marks. Every field is separated by a comma. Consequently, both of these punctuation are illegal inside the text data itself. When they are encountered, a space character will be substituted. Boolean fields contain simple True/False or Yes/No conditions. RADIO uses the letters Y and N. When building databases, start with the structures first. These have been provided above. When they are ready, import USERS.TXT and COMBINED.TXT into their respective tables/worksheets. Most database systems support comma-delimited fields, but fixed-length field imports can be less troublesome. export import userlist ----------> RADIO ----------> database system Using RADIO, you export from the userlist to create two text files, USERS.TXT and COMBINED.TXT. You then go to your database system and import those two files into your own tables/worksheets. If you are satisfied with the results, try including some automation. Writing a batch command file can make RADIO's command-line syntax easier to remember (note that the words OUT, REPORT, COMMA, and FIXED can all be abbreviated to their first letters). Also, if your database system includes a programming language, try writing a procedure to first empty the databases, then import the data which was recently exported from your userlist. To assist in automation, RADIO has the following return/errorlevel codes: ERRORLEVEL DESCRIPTION 255 Import mode not available 3 Unable to read/write other files 2 Unable to read/write userlist 1 Syntactic error 0 OK The other function of RADIO, reporting, is straightforward. RADIO will write a simple report text file. Each record is separated by a line of dashes. A legend is included at the end. [RemoteAccess Data Input/Output - Page 4] ACKNOWLEDGEMENTS ---------------- Thanks to Doug Cochrane, Rob Huston, and Scott Hounsell for testing this program. This version of RADIO was compiled the fourth of March, nineteen- ninety-five, with Borland's Turbo C++ for DOS 3.0, (c) 1987, 1993 Borland International, Inc. All rights reserved. Developed under the environment of Novell DOS 7.0 with its preemptive multi-tasker, which allowed me to compile, run, and test this program all at the same time. If you are looking for a better DOS, this is the only one I recommend. RemoteAccess (also known as RA) and RemoteAccess Manager are (C) 1989- 1994 Wantree Development & Andrew Milner. FEEDBACK -------- If you find this program useful, a postcard of your municipality would be appreciated. Comments or criticisms in writing are also welcome. I would not refuse a financial gift, either. Address all such land mail to: Brian Spencer 54 Highland Avenue Barrie, Ontario L4M-1N3 CANADA The home for RADIO is Surplus Pilot's Club at 1:252/103 or (705) 726- 9927 (V32bis/V42bis). You can file-request magic filename "RADIO". E- mail addressed to me will also be received there. In addition, I will watch the RAUTILS echomail area for my name. [RemoteAccess Data Input/Output - Page 5]