home *** CD-ROM | disk | FTP | other *** search
/ The Best of the Best / _.img / 02192 / logbook.arc / DXCCMB.PRG < prev    next >
Text File  |  1987-12-24  |  4KB  |  132 lines

  1. *MBDXCC AUTOMATICALLY UPDATES DXCC RECORDS FROM LOG DATABASE
  2. * COPYRIGHT JOE KASSER G3ZCZ 1985
  3.  
  4. STORE 0 TO worked
  5. STORE 0 TO qsled
  6. both = 0
  7.  
  8. SELECT A
  9. USE &logbook INDEX &logndx
  10.  
  11. SELECT B
  12. USE &dxcc
  13.  
  14. DO WHILE .NOT. EOF()
  15.    ? px
  16.    IF dstate = 'Q'
  17.       * ALREADY IN DXCC RECORD, IGNORE REST'
  18.       STORE .F. TO qslflag
  19.       STORE qsled + 1 TO qsled
  20.    ELSE
  21.       STORE 0 TO workedflag
  22.       STORE .T. TO qslflag
  23.       * NOT WORKED YET, SO TRY LOG FOR UPDATE'
  24.       STORE TRIM(px) TO prefix
  25.       SELECT A
  26.       FIND &prefix
  27.       IF (EOF() .OR. BOF())
  28.          * NO FIND, TRY ALTERNATE PREFIX
  29.          SELECT B
  30.          IF SUBSTR(px1,1,1) = ' '
  31.             * NO ALTERNATE PREFIX, GO TO NEXT PREFIX'
  32.          ELSE
  33.             STORE TRIM(px1) TO prefix
  34.             SELECT A
  35.             FIND &prefix
  36.             IF (EOF() .OR. BOF())
  37.                *NO FIND AGAIN, GO TO NEXT PREFIX  '
  38.             ELSE
  39.                * FOUND SOMETHING FOR PX1  '
  40.                DO WHILE call = prefix .AND. qslflag
  41.                  IF qslrx = 'R' .and. band = thisband
  42.                      *FOUND A QSL'
  43.                      STORE .F. TO qslflag
  44.                      STORE call TO call
  45.                      STORE date TO date
  46.                      STORE time TO time
  47.                      STORE mode TO mode
  48.                      STORE band TO band
  49.                      SELECT B
  50.                      REPLACE dcall WITH call
  51.                      REPLACE ddate WITH date
  52.                      REPLACE dtime WITH time
  53.                      REPLACE dmode WITH mode
  54.                      REPLACE dband WITH band
  55.                      STORE qsled + 1 TO qsled
  56.                      REPLACE dstate WITH 'Q'
  57.                      SKIP -1
  58.                   ELSE
  59.                      IF workedflag = 0
  60.                         IF band = thisband
  61.                            STORE RECNO() TO workedflag
  62.                         ENDIF
  63.                      ENDIF
  64.                   ENDIF
  65.                   SKIP
  66.                ENDDO
  67.             ENDIF
  68.          ENDIF
  69.       ELSE
  70.          *FOUND SOMETHING FOR PX, see IF its qsled'
  71.          DO WHILE call = prefix .AND. qslflag
  72.             IF qslrx = 'R'  .and. band =  thisband
  73.                STORE .F. TO qslflag
  74.                *FOUND A QSL'
  75.                STORE call TO call
  76.                STORE date TO date
  77.                STORE time TO time
  78.                STORE mode TO mode
  79.                STORE band TO band
  80.                SELECT B
  81.                REPLACE dstate WITH 'Q'
  82.                STORE qsled + 1 TO qsled
  83.                REPLACE dcall WITH call
  84.                REPLACE ddate WITH date
  85.                REPLACE dtime WITH time
  86.                REPLACE dmode WITH mode
  87.                REPLACE dband WITH band
  88.                SKIP -1
  89.             ELSE
  90.                IF workedflag = 0
  91.                   IF band = thisband
  92.                      STORE RECNO() TO workedflag
  93.                   ENDIF
  94.                ENDIF
  95.             ENDIF
  96.             SKIP
  97.          ENDDO
  98.       ENDIF
  99.    ENDIF
  100.    SELECT B
  101.    IF qslflag
  102.       IF workedflag = 0
  103.          * PREFIX WAS NOT WORKED EITHER
  104.       ELSE
  105.          SELECT A
  106.          GOTO  workedflag
  107.          STORE worked + 1 TO worked
  108.          STORE call TO call
  109.          STORE date TO date
  110.          STORE time TO time
  111.          STORE mode TO mode
  112.          STORE band TO band
  113.          SELECT B
  114.          REPLACE dcall WITH call
  115.          REPLACE ddate WITH date
  116.          REPLACE dtime WITH time
  117.          REPLACE dmode WITH mode
  118.          REPLACE dband WITH band
  119.          REPLACE dstate WITH 'W'
  120.       ENDIF
  121.    ENDIF
  122.       both = worked + qsled
  123.       ?? dcall, dband, dstate, qsled, worked, both
  124.    SKIP
  125. ENDDO
  126. SELECT B
  127. USE
  128. SELECT A
  129. USE
  130. RELEASE worked,workedflag,qsled,prefix,qslflag,call,date,time,mode,band,both
  131. RETURN
  132.