Category : Dbase (Clipper, FoxBase, etc) Languages Source Code
Archive   : YST3.ZIP
Filename : YST3.PRG

 
Output of file : YST3.PRG contained in archive : YST3.ZIP
*:*********************************************************************
*:
*: Program: YST3.PRG
*:
*: System: YST3 - FAX ADD-ON SOFTWARE
*: Author: Grimberg Associates
*: Copyright (c) 1991, Grimberg Associates
*: Last modified: 02/25/91 13:44
*:
*: Procs & Fncts: _FAXREP
*: : _FAXSEND
*: : _FAXINIT
*: : _FAXGET()
*:
*: Calls: _FAXREP (procedure in YST3.PRG)
*: : _FAXSEND (procedure in YST3.PRG)
*: : _FAXINIT (procedure in YST3.PRG)
*:
*: Documented 02/25/91 at 15:50 FoxDoc version 2.0
*:*********************************************************************
PARAMETER _fcommand,_ffiles,_fphones,_fstime,_fetime,_fheader

**** NUMBER OF PARAMETERS
_faxparam=PARAMETER()

***** DEFAULT EXIT NUMBER
_faxexit=0

***** IF ANY PARAMS
IF _faxparam > 0


******* CONVERT ALL PARAMS TO UPPER CASE

IF _faxparam >= 1
_fcommand=UPPER(_fcommand)
ENDIF
IF _faxparam >= 2
_ffiles=UPPER(_ffiles)
ELSE
_ffiles=""
ENDIF
IF _faxparam >= 3
_fphones=UPPER(_fphones)
ELSE
_fphones=""
ENDIF
IF _faxparam >= 4
_fstime=UPPER(_fstime)
ELSE
_fstime=""
ENDIF
IF _faxparam >= 5
_fetime=UPPER(_fetime)
ELSE
_fetime=""
ENDIF
IF _faxparam >= 6
_fheader=UPPER(_fheader)
ELSE
_fheader=""
ENDIF


***** EXECUTE FAX COMMANDS
DO CASE

CASE _fcommand = "REPORT"
DO _faxrep
CASE _fcommand = "SEND"
** MAKE SURE INIT WAS CALLED
IF TYPE("_faxoutnum") = 'C'
DO _faxsend
ENDIF

CASE _fcommand = "INIT"
DO _faxinit WITH _ffiles,_fphones

ENDCASE
ENDIF
RETU _faxexit



*!*********************************************************************
*!
*! Procedure: _FAXSEND
*!
*! Called by: YST3.PRG
*!

*! Calls: _FAXGET() (function in YST3.PRG)
*!
*! Uses: &_FAXCMDFIL.DBF
*!
*!*********************************************************************
PROCEDURE _faxsend

*** OUTFILE INFO
_faxout=""


**** COUNT NUMBER PARAMETERS FOR PARAMETERS
_ffilesc=OCCURS(',',_ffiles)+1
_fphonesc=OCCURS(',',_fphones)+1

IF LEN(_fstime) > 0
_fstimec=OCCURS(',',_fstime)+1
ELSE
_fstimec=0
ENDIF

IF LEN(_fetime) > 0
_fetimec=OCCURS(',',_fetime)+1
ELSE
_fetimec=0
ENDIF

IF LEN(_fheader) > 0
_fheaderc=OCCURS(',',_fheader)+1
ELSE
_fheaderc=0
ENDIF


**** SEE HOW MANY SUBMISSIONS
IF _ffilesc>_fphonesc
_faxcount=_ffilesc
ELSE
_faxcount=_fphonesc
ENDIF

******** VARIABLES TO KEEP PREVIOUS FILES AND NUMBERS
_prevfile=""
_prevphon=""

FOR _faxcnt2 = 1 TO _faxcount STEP 1


***** HEADER INFORMATION
IF _faxcnt2 <= _fheaderc
***** header text can only be 20 characters long
IF LEN(_faxget(_fheader,"HEADER")) > 20
_faxout=_faxout+"HEADER 1 "+SUBSTR(_faxget(_fheader,"HEADER"),1,20)+CHR(13)+CHR(10)
ELSE
_faxout=_faxout+"HEADER 1 "+_faxget(_fheader,"HEADER")+CHR(13)+CHR(10)
ENDIF
ENDIF

***** START TIME
IF _faxcnt2 <= _fstimec
_faxout=_faxout+"STARTTIME "+SUBSTR(_faxget(_fstime,"STARTTIME"),1,20)+CHR(13)+CHR(10)
ENDIF

***** END TIME
IF _faxcnt2 <= _fetimec
_faxout=_faxout+"ENDTIME "+SUBSTR(_faxget(_fetime,"ENDTIME"),1,20)+CHR(13)+CHR(10)
ENDIF


**** SEND
IF _faxcnt2 <= _ffilesc
_faxout=_faxout+"SEND "+_faxget(_ffiles,"FILE")+CHR(13)+CHR(10)
ELSE
_faxout=_faxout+"SEND "+_prevfile+CHR(13)+CHR(10)
ENDIF


**** DIAL
IF _faxcnt2 <= _fphonesc
_faxout=_faxout+"DIAL "+_faxoutnum+_faxget(_fphones,"PHONE")+CHR(13)+CHR(10)
ELSE
_faxout=_faxout+"DIAL "+_faxoutnum+_prevphon+CHR(13)+CHR(10)
ENDIF

ENDFOR


***** END-OF-FILE
_faxout=_faxout+CHR(26)


**** NAME OF COMMAND FILE TO BE CREATED
_faxcmdfil=""

**** create file
_fileok=.F.

FOR _faxcnt2 = 1 TO 3 STEP 1
** get unique file
_faxcmdfil=SYS(3)+'.CMD'

_faxcmd = FCREATE(_faxcmdfil)

IF _faxcmd <> -1
_fileok=.T.
EXIT
ENDIF

ENDFOR


**** do not run GCL if file was not created
IF _fileok=.F.
_faxexit = 1
ELSE
_faxcount = FWRITE(_faxcmd,_faxout)
_faxcount = FCLOSE(_faxcmd)
** run command
!/0 gcl -d0 &_faxcmdfil

**** DELETE COMMAND FILE
ERASE &_faxcmdfil
ENDIF

RETU



*!*********************************************************************
*!
*! Function: _FAXGET()
*!
*! Called by: _FAXSEND (procedure in YST3.PRG)
*!
*!*********************************************************************
FUNCTION _faxget
PARAMETER _faxstr,_faxopt

***START POSITION OF SUBSTRING
IF _faxcnt2 <> 1
_faxstrs=AT(',',_faxstr,_faxcnt2-1)+1
ELSE
_faxstrs=1
ENDIF
** END POSITION
_faxstre=AT(',',_faxstr,_faxcnt2)-1

IF _faxstre=-1
_faxstre=LEN(_faxstr)
ENDIF

*** GET TOKEN
_faxstrn=ALLTRIM(SUBSTR(_faxstr,_faxstrs,(_faxstre-_faxstrs)+1))

**** MAKE CHANGES FOR PHONES
IF _faxopt = "PHONE"
_faxstrx=_faxstrn
_faxstrn=""

** TAKE OUT UNWANTED CHARACTERS
FOR _faxcnt3 = 1 TO LEN(_faxstrx) STEP 1
IF SUBSTR(_faxstrx,_faxcnt3,1) >= '0' .AND. SUBSTR(_faxstrx,_faxcnt3,1) <= '9'
_faxstrn=_faxstrn+SUBSTR(_faxstrx,_faxcnt3,1)
ENDIF
ENDFOR

***** CHECK AREA CODE - EITHER ADD 1 TO NUMBER OR TAKE FIRST 3 DIGITS
IF LEN(_faxstrn) >= 10
IF SUBSTR(_faxstrn,1,3) = _faxarea
_faxstrn=SUBSTR(_faxstrn,4)
ELSE
_faxstrn='1'+_faxstrn
ENDIF
ENDIF
_prevphon=_faxstrn
ENDIF
IF _faxopt='FILE'
_prevfile = _faxstrn
ENDIF

RETU _faxstrn



*!*********************************************************************
*!
*! Procedure: _FAXINIT
*!
*! Called by: YST3.PRG
*!
*!*********************************************************************
PROCEDURE _faxinit
PARAMETER _fax1,_fax2

**** DIAL OUT NUMBER
PUBLIC _faxoutnum
_faxoutnum=_fax1

**** USER AREA CODE
PUBLIC _faxarea
_faxarea=_fax2

RETU


*!*********************************************************************
*!
*! Procedure: _FAXREP
*!
*! Called by: YST3.PRG
*!
*! Uses: &_FAXCMDFIL.DBF
*!
*!*********************************************************************
PROCEDURE _faxrep
***** report procedure

_faxout=""
_faxtxtfil=SYS(3)+'.txt'

DO CASE
CASE _ffiles="SENT"
_faxout=_faxout+"DOWHILE GET SENT == 0"+CHR(13)+CHR(10)
_faxout=_faxout+"DOS ECHO >>"+_faxtxtfil+" @SF, @PH, @CT, @SA"+CHR(13)+CHR(10)
_faxout=_faxout+"ENDDO"+CHR(13)+CHR(10)
CASE _ffiles="PENDING"
_faxout=_faxout+"DOWHILE GET PENDING == 0"+CHR(13)+CHR(10)
_faxout=_faxout+"DOS ECHO >>"+_faxtxtfil+" @SF, @PH, @TI, @SA"+CHR(13)+CHR(10)
_faxout=_faxout+"ENDDO"+CHR(13)+CHR(10)
CASE _ffiles="RECEIVE"
_faxout=_faxout+"DOWHILE GET RECEIVE == 0"+CHR(13)+CHR(10)
_faxout=_faxout+"DOS ECHO >>"+_faxtxtfil+" @RF, @CS, @CT, @SA"+CHR(13)+CHR(10)
_faxout=_faxout+"ENDDO"+CHR(13)+CHR(10)

OTHERWISE
_faxexit=""
RETU
ENDCASE

_faxexit=_faxtxtfil


**** NAME OF COMMAND FILE TO BE CREATED
_faxcmdfil=""

**** create file
_fileok=.F.

FOR _faxcnt2 = 1 TO 3 STEP 1
** get unique file
_faxcmdfil=SYS(3)+'.CMD'

_faxcmd = FCREATE(_faxcmdfil)

IF _faxcmd <> -1
_fileok=.T.
EXIT
ENDIF

ENDFOR


**** do not run GCL if file was not created
IF _fileok=.F.
_faxexit = ""
ELSE
_faxcount = FWRITE(_faxcmd,_faxout)
_faxcount = FCLOSE(_faxcmd)
** run command
!/0 gcl -d0 -e1 &_faxcmdfil

**** DELETE COMMAND FILE
ERASE &_faxcmdfil
ENDIF

RETU
*: EOF: YST3.PRG


  3 Responses to “Category : Dbase (Clipper, FoxBase, etc) Languages Source Code
Archive   : YST3.ZIP
Filename : YST3.PRG

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/