home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol026 / qsoedit.bas < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  2.7 KB  |  118 lines

  1. 4000    REM    QSO LOG
  2.     TPYFILE$="QSOSORT.FIL"
  3.     FILE    TPYFILE$
  4.     DIM CALL$(50),NAME$(50),QTH$(50),FREQ$(50),DATE$(50),TIME$(50),CARD$(50)
  5.     ONE=1
  6.     CNT=ONE
  7.     PRINT CHR$(26)
  8.     PRINT  "START OF UPDATE"
  9.     INPUT "What date is today? (YYMMDD) ";TODAY$
  10.  
  11. 4050    REM DATA ENTRY
  12.     INPUT "Enter call sign ";CALL$(CNT)
  13.     IF CALL$(CNT)="END" OR CALL$(CNT)="End" THEN 4200
  14.     IF MID$(CALL$(CNT),2,1) < CHR$(58) THEN\
  15.         CALL$(CNT)=LEFT$(CALL$(CNT),1)+CHR$(32)+MID$(CALL$(CNT),2,7)+" "
  16.     INPUT "Enter name";NAME$(CNT)
  17.     INPUT "Enter QTH ";QTH$(CNT)
  18.     INPUT "Enter frequency worked ";FREQ$(CNT)
  19.     INPUT "Enter date worked (if today enter 'P')";DATE$(CNT)
  20.     IF DATE$(CNT)="P" THEN DATE$(CNT)=TODAY$
  21.     INPUT "Enter time EST";TIME$(CNT)
  22.     INPUT "Enter if QSL card was mailed (Y/N)";CARD$(CNT)
  23.     PRINT
  24.     PRINT CNT
  25.     PRINT CALL$(CNT),NAME$(CNT),QTH$(CNT)
  26.     PRINT FREQ$(CNT),DATE$(CNT),TIME$(CNT),CARD$(CNT)
  27.     PRINT
  28.  
  29. 4090    REM
  30.     INPUT "ACCEPT(Y) ELSE REJECT(N): "; ANS$
  31.     IF ANS$="Y" THEN 4100
  32.     IF ANS$="N" THEN 4050
  33.     PRINT "PLS ENTER CORRECT OPTION"
  34.     GOTO 4090
  35.  
  36. 4100    REM    BUMP UP COUNT
  37.     PRINT "RECORD ACCEPTED"
  38.     PRINT
  39.     CNT=CNT+1
  40.     GOTO 4050
  41.  
  42. 4200    REM COUNT UP AND SORT
  43.     CNT=CNT-1
  44.     PRINT CNT;"ITEMS ENTERED"
  45.     OFF=0
  46.     SET=1
  47.     TWO=2
  48.     FILLER$="                        "
  49.     PRINT "SORTING...",
  50.  
  51.  
  52. 4500    REM   SORT
  53.     LASTCNT=CNT-1
  54.     IF LASTCNT=0 THEN 4900
  55.     CNT=1
  56.     FLAG=OFF
  57.  
  58. 4550    REM SORT ITERATION
  59.     C$=CALL$(CNT)+FILLER$
  60.     C$=LEFT$(C$,1)+MID$(C$,3,7)
  61.     IF LEFT$(C$,1)="K" OR LEFT$(C$,1)="N" OR LEFT$(C$,1)="A" \
  62.         OR LEFT$(C$,1)="W" THEN C$=MID$(C$,2,5)+FILLER$
  63.     NAME1$=C$
  64.     C$=CALL$(CNT+1)+FILLER$
  65.     C$=LEFT$(C$,1)+MID$(C$,3,7)
  66.     IF LEFT$(C$,1)="K" OR LEFT$(C$,1)="N" OR LEFT$(C$,1)="A" \
  67.         OR LEFT$(C$,1)="W" THEN C$=MID$(C$,2,5)+FILLER$
  68.     NAME2$=C$
  69.     IF NAME1$ <= NAME2$ THEN 4600
  70.     GOSUB 4700
  71.  
  72. 4600    CNT=CNT+1
  73.     IF CNT >LASTCNT THEN 4800
  74.     GOTO 4550
  75.  
  76. 4700    REM   SWAP FIELDS
  77.     ZCALL$=CALL$(CNT)
  78.     ZNAME$=NAME$(CNT)
  79.     ZQTH$=QTH$(CNT)
  80.     ZFREQ$=FREQ$(CNT)
  81.     ZDATE$=DATE$(CNT)
  82.     ZTIME$=TIME$(CNT)
  83.     ZCARD$=CARD$(CNT)
  84.  
  85.     CALL$(CNT)=CALL$(CNT+1)
  86.     NAME$(CNT)=NAME$(CNT+1)
  87.     QTH$(CNT)=QTH$(CNT+1)
  88.     FREQ$(CNT)=FREQ$(CNT+1)
  89.     DATE$(CNT)=DATE$(CNT+1)
  90.     TIME$(CNT)=TIME$(CNT+1)
  91.     CARD$(CNT)=CARD$(CNT+1)
  92.  
  93.     CALL$(CNT+1)=ZCALL$
  94.     NAME$(CNT+1)=ZNAME$
  95.     QTH$(CNT+1)=ZQTH$
  96.     FREQ$(CNT+1)=ZFREQ$
  97.     DATE$(CNT+1)=ZDATE$
  98.     TIME$(CNT+1)=ZTIME$
  99.     CARD$(CNT+1)=ZCARD$
  100.  
  101.     FLAG=SET
  102.     RETURN
  103.  
  104. 4800    REM    CHECK END OF SORT
  105.     IF FLAG=OFF THEN 4900
  106.     FLAG=OFF
  107.     CNT=ONE
  108.     GOTO 4550
  109.  
  110. 4900    REM   WRITE OUT SORTED FILE
  111.     FOR CNT=1 TO LASTCNT+1
  112.     PRINT #ONE; CALL$(CNT),NAME$(CNT),QTH$(CNT),FREQ$(CNT),\
  113.     DATE$(CNT),TIME$(CNT),CARD$(CNT)
  114.     PRINT CALL$(CNT),
  115.     NEXT CNT
  116.     PRINT #ONE; "END","END","END","END","END","END","END"
  117.     CLOSE 1
  118.