home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3 / hamradioversion3.0examsandprograms1992.iso / log / log3_52a / dxccupdt.prg < prev    next >
Text File  |  1990-05-04  |  6KB  |  198 lines

  1. *:*********************************************************************
  2. *:
  3. *:        Program: DXCCUPDT.PRG
  4. *:
  5. *:         System: PC-HAM Logbook
  6. *:         Author: Joe Kasser G3ZCZ
  7. *:      Copyright (c) 1990, Joe Kasser
  8. *:  Last modified: 04/27/90     13:17
  9. *:
  10. *:      Called by: DXCC.PRG                      
  11. *:
  12. *:           Uses: &LOGBOOK.DBF   
  13. *:               : &DXCC          
  14. *:
  15. *:        Indexes: &LOGNDX
  16. *:
  17. *:      Documented 05/04/90 at 13:50                SNAP!  version 3.12f
  18. *:*********************************************************************
  19. *DXCCUPDT AUTOMATICALLY UPDATES DXCC RECORDS FROM LOG DATABASE VER 860515
  20. * PATCHED 870717, 871209, 890602
  21. * DOES NOT RECOGNISE SEPARATE BANDS OR MODES
  22. * (c) COPYRIGHT JOE KASSER G3ZCZ 1986
  23. SELECT 1
  24. USE &logbook INDEX &logndx
  25.  
  26. SELECT 2
  27. USE &dxcc
  28.  
  29. DO WHILE .not. EOF()
  30.    CLEAR
  31.    ? px
  32.    IF dstate = 'Q'
  33.       ?? '  ',dcall,' ALREADY CONFIRMED IN DXCC RECORD'
  34.    ELSE
  35.       * NOT WORKED YET, SO TRY LOG FOR UPDATE'
  36.       STORE TRIM(px) TO prefix
  37.       SELECT 1
  38.       FIND &prefix
  39.       IF (EOF() .or. BOF())
  40.          * NO FIND, TRY ALTERNATE PREFIX'
  41.          SELECT 2
  42.          IF SUBSTR(px1,1,1) = ' '
  43.             * NO ALTERNATE PREFIX, GO TO NEXT PREFIX'
  44.          ELSE
  45.             STORE TRIM(px1) TO prefix
  46.             ? px1
  47.             SELECT 1
  48.             FIND &prefix
  49.             IF (EOF() .or. BOF())
  50.                *NO FIND AGAIN, GO TO NEXT PREFIX  '
  51.             ELSE
  52.                * FOUND SOMETHING FOR PX1  '
  53.                STORE .t. TO qslflag
  54.                DO WHILE .not. EOF() .and. CALL = prefix .and. qslflag
  55.                   ? CALL,DATE,TIME,band,qslsent,qslrx
  56.                   IF qslrx = 'R'
  57.                      STORE .F. TO qslflag
  58.                      *FOUND A QSL'
  59.                   ENDIF
  60.                   SKIP
  61.                ENDDO
  62.                SKIP -1
  63.                STORE CALL TO CALL
  64.                STORE DATE TO DATE
  65.                STORE TIME TO TIME
  66.                STORE mode TO mode
  67.                STORE band TO band
  68.                SELECT 2
  69.                REPLACE dcall WITH CALL
  70.                REPLACE ddate WITH DATE
  71.                REPLACE dtime WITH TIME
  72.                REPLACE dmode WITH mode
  73.                REPLACE dband WITH band
  74.                IF qslflag
  75.                   REPLACE dstate WITH 'W'
  76.                ELSE
  77.                   REPLACE dstate WITH 'Q'
  78.                ENDIF
  79.             ENDIF
  80.          ENDIF
  81.       ELSE
  82.          *FOUND SOMETHING FOR PX, see if its qsled'
  83.          STORE .t. TO qslflag
  84.          DO WHILE .not. EOF() .and. CALL = prefix .and. qslflag
  85.             ? CALL,DATE,TIME,band,qslsent,qslrx
  86.             IF qslrx = 'R'
  87.                STORE .F. TO qslflag
  88.                *FOUND A QSL'
  89.             ENDIF
  90.             SKIP
  91.          ENDDO
  92.          SKIP -1
  93.          IF qslflag
  94.             *its not qsled, only worked '
  95.             * TRY ALTERNATE PREFIX
  96.             SELECT 2
  97.             IF SUBSTR(px1,1,1) = ' '
  98.                * NO ALTERNATE PREFIX, GO BACK TO FIRST PREFIX'
  99.                STORE TRIM(px) TO prefix
  100.                SELECT 1
  101.                GOTO TOP
  102.                * PICK FIRST ONE
  103.                FIND &prefix
  104.                STORE CALL TO CALL
  105.                STORE DATE TO DATE
  106.                STORE TIME TO TIME
  107.                STORE mode TO mode
  108.                STORE band TO band
  109.                SELECT 2
  110.                REPLACE dcall WITH CALL
  111.                REPLACE ddate WITH DATE
  112.                REPLACE dtime WITH TIME
  113.                REPLACE dmode WITH mode
  114.                REPLACE dband WITH band
  115.                REPLACE dstate WITH 'W'
  116.             ELSE
  117.                STORE TRIM(px1) TO prefix
  118.                *
  119.                ? px1
  120.                SELECT 1
  121.                FIND &prefix
  122.                IF (EOF() .or. BOF())
  123.                   *NO FIND AGAIN, GO BACK TO FIRST PREFIX   '
  124.                   SELECT 2
  125.                   STORE TRIM(px) TO prefix
  126.                   SELECT 1
  127.                   FIND &prefix
  128.                   STORE CALL TO CALL
  129.                   STORE DATE TO DATE
  130.                   STORE TIME TO TIME
  131.                   STORE mode TO mode
  132.                   STORE band TO band
  133.                   SELECT 2
  134.                   REPLACE dcall WITH CALL
  135.                   REPLACE ddate WITH DATE
  136.                   REPLACE dtime WITH TIME
  137.                   REPLACE dmode WITH mode
  138.                   REPLACE dband WITH band
  139.                   REPLACE dstate WITH 'W'
  140.                ELSE
  141.                   * FOUND SOMETHING FOR PX1 '
  142.                   STORE .t. TO qslflag
  143.                   DO WHILE .not. EOF() .and. CALL = prefix .and. qslflag
  144.                      ? CALL,DATE,TIME,band,qslsent,qslrx
  145.                      IF qslrx = 'R'
  146.                         STORE .F. TO qslflag
  147.                         *FOUND A QSL
  148.                      ENDIF
  149.                      SKIP
  150.                   ENDDO
  151.                   SKIP -1
  152.                   STORE CALL TO CALL
  153.                   STORE DATE TO DATE
  154.                   STORE TIME TO TIME
  155.                   STORE mode TO mode
  156.                   STORE band TO band
  157.                   SELECT 2
  158.                   IF qslflag
  159.                      REPLACE dstate WITH 'W'
  160.                   ELSE
  161.                      REPLACE dstate WITH 'Q'
  162.                   ENDIF
  163.                ENDIF
  164.                SELECT 2
  165.                REPLACE dcall WITH CALL
  166.                REPLACE ddate WITH DATE
  167.                REPLACE dtime WITH TIME
  168.                REPLACE dmode WITH mode
  169.                REPLACE dband WITH band
  170.             ENDIF
  171.          ELSE
  172.             * PX IS QSLED, UPDATE DATA
  173.             STORE CALL TO CALL
  174.             STORE DATE TO DATE
  175.             STORE TIME TO TIME
  176.             STORE mode TO mode
  177.             STORE band TO band
  178.             SELECT 2
  179.             REPLACE dstate WITH 'Q'
  180.             REPLACE dcall WITH CALL
  181.             REPLACE ddate WITH DATE
  182.             REPLACE dtime WITH TIME
  183.             REPLACE dmode WITH mode
  184.             REPLACE dband WITH band
  185.          ENDIF
  186.       ENDIF
  187.    ENDIF
  188.    SELECT 2
  189.    SKIP
  190. ENDDO
  191. SELECT 2
  192. USE
  193. SELECT 1
  194. USE
  195. RELEASE prefix,qslflag, CALL, DATE, TIME, mode, band
  196. RETURN
  197. *: EOF: DXCCUPDT.PRG
  198.