home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of the Best
/
_.img
/
02192
/
logbook.arc
/
LOGFUNCT.PRG
< prev
next >
Wrap
Text File
|
1987-12-25
|
8KB
|
251 lines
* LOGFUNCT VERSION 860622 mod 871224
* COPYRIGHT JOE KASSER G3ZCZ 1985
DO WHILE task <> '*'
CLEAR
@ 2,10 SAY 'G3ZCZ LOGBOOK FUNCTIONS PACKAGE VERSION 3.0'
@ 4,1 SAY 'CURRENT LOGBOOK IS'
@ 4,21 SAY logbook
@ 6,1 SAY 'CHANGE LOG FILE L'
@ 7,1 SAY 'PRINT LOG PAGES P'
@ 8,1 SAY 'PRINT LOG INDEXED BY CALL SIGN C'
@ 9,1 SAY 'APPEND ENTRIES A'
@ 10,1 SAY 'CREATE NEW LOGBOOK DATABASE N'
@ 11,1 SAY 'HUNT FOR PREFIX/CALL IN LOG H'
@ 12,1 SAY 'SUMMARISE LOG S'
@ 13,1 SAY 'UPDATE QSL STATUS Q'
@ 14,1 SAY 'DISPLAY ENTRIES FOR ONE DAY 1'
@ 15,1 SAY 'DISPLAY LAST 20 ENTRIES IN THE LOG E'
@ 16,1 SAY 'DISPLAY BLOCK OF 20 ENTRIES B'
@ 17,1 SAY 'DETERMINE UNIQUE CONTACTS U'
@ 18,1 SAY 'TRANSFER SINGLE PX TO NEW DATABASE X'
@ 19,1 SAY 'DISPLAY FILES ON DISK DRIVE F'
@ 20,1 SAY 'QUIT THIS MENU *'
@ 22,1 SAY 'QRU'
@ 22,5 GET task
READ
IF task = 'F'
CLEAR
ACCEPT 'WHICH DRIVE ? ' TO diskdrive
diskdrive = LEFT(diskdrive,1)
STORE diskdrive + ':' TO diskdrive
DISPLAY FILES ON &diskdrive
RELEASE diskdrive
WAIT
ENDIF
IF task = 'N'
STORE 'LOG' TO log
IF FILE (log+'.DBF')
@ 22,1 SAY 'What is the name of the new Log file '
@ 22,40 GET logbook
READ
IF FILE (logbook+'.DBF')
@ 22,1 SAY ' '
? 'ERROR, ',logbook,' ALREADY EXISTS ON DRIVE'
WAIT
ELSE
@ 22,1 SAY ' '
USE log
COPY STRUCTURE TO &logbook
USE &logbook
SET TALK ON
INDEX ON call+band TO &logndx
SET TALK OFF
ENDIF
ELSE
@ 22,1 SAY ' '
? 'ERROR, BLANK LOG FILE (log>dbf IS NOT PRESENT ON DRIVE'
WAIT
ENDIF
RELEASE log
ENDIF
IF task = 'L'
@ 22,1 SAY 'Which Log file '
@ 22,15 GET logbook
READ
STORE logbook TO logndx
IF FILE (logbook+'.DBF')
@ 22,1 SAY ' '
ELSE
@ 22,1 SAY ' '
? 'ERROR, ',logbook, 'IS NOT PRESENT ON DRIVE'
WAIT
ENDIF
ENDIF
IF FILE (logbook+'.DBF')
IF logbook = ' '
@ 23,1 SAY 'OPEN A LOGBOOK FIRST'
WAIT
STORE 'L' TO task
ELSE
DO CASE
CASE task = 'S'
DO LOGSTAT
CASE task = 'P'
DO LOGPRINT
CASE task = 'H'
DO LOGSRCH
CASE task = 'A'
DO LOGADD
CASE task = 'Q'
DO LOGQSL
CASE task = 'C'
DO LOGCALL
CASE task = '1'
DO LOGDATE
CASE task = 'E'
USE &logbook
GOTO BOTTOM
SKIP -20
CLEAR
DO WHILE .NOT. EOF()
? RECNO(),date,time,call,band,tx,rx,mode,power,qslsent,qslrx,comments
SKIP
ENDDO
USE
WAIT
CASE task = 'B'
USE &logbook
ACCEPT 'WHAT ENTRY NUMBER ? ' TO sdate
GOTO BOTTOM
STORE RECNO() TO lastone
IF &sdate >= lastone
?
? 'There are only ',lastone,' QSOs in the log'
WAIT
ELSE
GOTO &sdate
STORE '+' TO stask
DO WHILE stask <> '*'
CLEAR
STORE 0 TO lcount
? ' # DATE TIME BD CALL RX TX MODE POWER '
?? 'S R COMMENTS'
? '------------------------------------------------------'
?? '------------'
DO WHILE lcount < 20 .AND. .NOT. EOF()
DISP
STORE lcount + 1 TO lcount
SKIP
ENDDO
@ 24,1 SAY 'QRU (+ - *)'
@ 24,15 GET stask
READ
IF stask = '-'
STORE RECNO() - 40 TO sdate
IF sdate < 1
STORE 1 TO sdate
ENDIF
GOTO sdate
ENDIF
ENDDO
CASE task = 'U'
* UNIQUE TESTS AND COUNTS UNIQUE LOG ENTRIES
USE &logbook INDEX &logndx
STORE 0 TO dup
STORE 0 TO qsos
STORE 0 TO dummy
DO WHILE .NOT. EOF()
IF call = '-' .OR. call = '.'
STORE dummy + 1 TO dummy
SKIP
ELSE
? call
STORE qsos + 1 TO qsos
STORE call TO tcall
SKIP
DO WHILE call = tcall .AND. .NOT. EOF()
SKIP
STORE dup + 1 TO dup
ENDDO
?? qsos, dup, dummy
ENDIF
ENDDO
USE
?
?
?
? TRIM(STR(qsos,5)),' UNIQUE CALLS ',TRIM(STR(dup,5)),'DUPLICATES, and '
?? TRIM(STR(dummy,5)),'DUMMY ENTRIES'
? 'IE. A TOTAL OF',dup + qsos + dummy,' ENTRIES IN THE LOGBOOK'
RELEASE qsos,dup,tcall,dummy
WAIT
CASE TASK = 'X'
*GETS ALL PX'S AND PUTS THEM IN FILE
ACCEPT 'What Target Database File ? ' TO target
ACCEPT 'What Prefix ? ' TO prefix
SELECT A
USE &logbook INDEX &logndx
IF FILE(target + '.DBF')
ELSE
* CREATE IT
SELECT A
? 'Creating Target File Now'
?
COPY STRUCTURE TO &target
ENDIF
SELECT B
USE &target
SELECT A
FIND &prefix
DO WHILE CALL = prefix .AND. .NOT. EOF()
? call,date,time,band
STORE date TO tdate
STORE time TO ttime
STORE call TO tcall
STORE band TO tband
STORE mode TO tmode
STORE rx TO trx
STORE tx TO ttx
STORE power TO tpower
STORE qslsent TO tqslsent
STORE qslrx TO tqslrx
STORE comments TO tcomments
SELECT B
APPEND BLANK
REPLACE date WITH tdate
REPLACE time WITH ttime
REPLACE call WITH tcall
REPLACE band WITH tband
REPLACE mode WITH tmode
REPLACE rx WITH trx
REPLACE tx WITH ttx
REPLACE power WITH tpower
REPLACE qslsent WITH tqslsent
REPLACE qslrx WITH tqslrx
REPLACE comments WITH tcomments
SELECT A
SKIP
ENDDO
USE
SELECT B
? 'Stand by while database is indexed'
SET TALK ON
INDEX ON call+ band TO &target
SET TALK OFF
USE
RELEASE tdate,ttime,tcall,tband,tmode,trx,ttx
RELEASE tpower,tqslsent,tqslrx,tcomments,target,prefix
ENDIF
RELEASE lastone,stask,sdate,lcount
USE
ENDCASE
ENDIF
ELSE
@ 22,1 SAY ' '
? 'ERROR, ',logbook, 'IS NOT PRESENT ON DRIVE'
WAIT
ENDIF
ENDDO
USE
STORE ' ' TO task
RETURN