home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / misc / pc-hamd3 / logdxcc.prg < prev    next >
Text File  |  1985-09-28  |  5KB  |  148 lines

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