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

  1. *DXCCUPDT AUTOMATICALLY UPDATES DXCC RECORDS FROM LOG DATABASE VER 860515
  2. * PATCHED 870717 and 871209
  3. * DOES NOT RECOGNISE SEPARATE BANDS OR MODES
  4. * (c) COPYRIGHT JOE KASSER G3ZCZ 1986
  5. SELECT A
  6. USE &logbook INDEX &logndx
  7.  
  8. SELECT B
  9. USE &dxcc
  10.  
  11. DO WHILE .NOT. EOF()
  12.    CLEAR
  13.    ? px
  14.    IF dstate = 'Q'
  15.       ?? '  ',dcall,' ALREADY CONFIRMED IN DXCC RECORD'
  16.    ELSE
  17.       * NOT WORKED YET, SO TRY LOG FOR UPDATE'
  18.       STORE TRIM(px) TO prefix
  19.       SELECT A
  20.       FIND &prefix
  21.       IF (EOF() .OR. BOF())
  22.          * NO FIND, TRY ALTERNATE PREFIX
  23.          SELECT B
  24.          IF SUBSTR(px1,1,1) = ' '
  25.             * NO ALTERNATE PREFIX, GO TO NEXT PREFIX'
  26.          ELSE
  27.             STORE TRIM(px1) TO prefix
  28.             ? px1
  29.             SELECT A
  30.             FIND &prefix
  31.             IF (EOF() .OR. BOF())
  32.                *NO FIND AGAIN, GO TO NEXT PREFIX  '
  33.             ELSE
  34.                * FOUND SOMETHING FOR PX1  '
  35.                STORE .T. TO qslflag
  36.                DO WHILE .NOT. EOF() .AND. call = prefix .AND. qslflag
  37.                  ? call,date,time,band,qslsent,qslrx
  38.                   IF qslrx = 'R'
  39.                      STORE .F. TO qslflag
  40.                      *FOUND A QSL'
  41.                   ENDIF
  42.                   SKIP
  43.                ENDDO
  44.                SKIP -1
  45.                STORE call TO call
  46.                STORE date TO date
  47.                STORE time TO time
  48.                STORE mode TO mode
  49.                STORE band TO band
  50.                SELECT B
  51.                REPLACE dcall WITH call
  52.                REPLACE ddate WITH date
  53.                REPLACE dtime WITH time
  54.                REPLACE dmode WITH mode
  55.                REPLACE dband WITH band
  56.                IF qslflag
  57.                   REPLACE dstate WITH 'W'
  58.                ELSE
  59.                   REPLACE dstate WITH 'Q'
  60.                ENDIF
  61.             ENDIF
  62.          ENDIF
  63.       ELSE
  64.          *FOUND SOMETHING FOR PX, see if its qsled'
  65.          STORE .T. TO qslflag
  66.          DO WHILE .NOT. EOF() .AND. call = prefix .AND. QSLflag
  67.             ? call,date,time,band,qslsent,qslrx
  68.             IF qslrx = 'R'
  69.                STORE .F. TO qslflag
  70.                *FOUND A QSL'
  71.             ENDIF
  72.             SKIP
  73.          ENDDO
  74.          SKIP -1
  75.          IF qslflag
  76.             *its not qsled, only worked '
  77.             * TRY ALTERNATE PREFIX
  78.             SELECT B
  79.             IF SUBSTR(px1,1,1) = ' '
  80.                * NO ALTERNATE PREFIX, GO BACK TO FIRST PREFIX'
  81.                STORE TRIM(px) TO prefix
  82.                SELECT A
  83.                GOTO TOP
  84.                * PICK FIRST ONE
  85.                FIND &prefix
  86.                STORE call TO call
  87.                STORE date TO date
  88.                STORE time TO time
  89.                STORE mode TO mode
  90.                STORE band TO band
  91.                SELECT B
  92.                REPLACE dcall WITH call
  93.                REPLACE ddate WITH date
  94.                REPLACE dtime WITH time
  95.                REPLACE dmode WITH mode
  96.                REPLACE dband WITH band
  97.                REPLACE dstate WITH 'W'
  98.             ELSE
  99.                STORE TRIM(px1) TO prefix
  100. *              ? px1
  101.                SELECT A
  102.                FIND &prefix
  103.                IF (EOF() .OR. BOF())
  104.                   *NO FIND AGAIN, GO BACK TO FIRST PREFIX   '
  105.                   SELECT B
  106.                   STORE TRIM(px) TO prefix
  107.                   SELECT A
  108.                   FIND &prefix
  109.                   SELECT B
  110.                   REPLACE dstate WITH 'W'
  111.                ELSE
  112.                   * FOUND SOMETHING FOR PX1 '
  113.                   STORE .T. TO qslflag
  114.                   DO WHILE .NOT. EOF() .AND. call = prefix .AND. qslflag
  115.                   ? call,date,time,band,qslsent,qslrx
  116.                   IF qslrx = 'R'
  117.                         STORE .F. TO qslflag
  118.                         *FOUND A QSL
  119.                      ENDIF
  120.                      SKIP
  121.                   ENDDO
  122.                   SKIP -1
  123.                STORE call TO call
  124.                STORE date TO date
  125.                STORE time TO time
  126.                STORE mode TO mode
  127.                STORE band TO band
  128.                   SELECT B
  129.                   IF qslflag
  130.                      REPLACE dstate WITH 'W'
  131.                   ELSE
  132.                      REPLACE dstate WITH 'Q'
  133.                   ENDIF
  134.                ENDIF
  135.                SELECT B
  136.                REPLACE dcall WITH call
  137.                REPLACE ddate WITH date
  138.                REPLACE dtime WITH time
  139.                REPLACE dmode WITH mode
  140.                REPLACE dband WITH band
  141.             ENDIF
  142.          ELSE
  143.             * PX IS QSLED, UPDATE DATA
  144.             STORE call TO call
  145.             STORE date TO date
  146.             STORE time TO time
  147.             STORE mode TO mode
  148.             STORE band TO band
  149.             SELECT B
  150.             REPLACE dstate WITH 'Q'
  151.             REPLACE dcall WITH call
  152.             REPLACE ddate WITH date
  153.             REPLACE dtime WITH time
  154.             REPLACE dmode WITH mode
  155.             REPLACE dband WITH band
  156.          ENDIF
  157.       ENDIF
  158.    ENDIF
  159.    SELECT B
  160.    SKIP
  161. ENDDO
  162. SELECT B
  163. USE
  164. SELECT A
  165. USE
  166. RELEASE prefix,qslflag, call, date, time, mode, band
  167. RETURN
  168.