home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug061.arc / LIBEDIT.CMD < prev    next >
OS/2 REXX Batch file  |  1979-12-31  |  3KB  |  105 lines

  1. ***************************** LIBEDIT.CMD
  2. ************* Allows user to look up a reference
  3. ************* by primary author name, and change
  4. ************* data.  Automatically updates the
  5. ************* keyword history file.
  6.  
  7. ************* Set up databases and memory variables.
  8. SELE PRIM
  9. USE LIBRARY INDEX AUTHORS,DATES
  10. SELE SECO
  11. USE KEYWORDS INDEX KEYWORDS
  12. SELE PRIM
  13. STORE "              " TO K1,K2,K3,K4,K5,K6,K7
  14.  
  15. ************** Find out who to edit.
  16. ERASE
  17. ?
  18. ACCEPT " Enter Main Author's last name, 0 to quit. " TO SEARCH
  19. if &search = 0
  20.      return
  21. endif
  22. STORE !(SEARCH) TO SEARCH
  23. ERAS
  24.  
  25. *************** Determine if 0, 1 or many references
  26. *************** By this author, and react accordingly.
  27. FIND &SEARCH
  28.  
  29.  
  30. STORE 0 TO HOWMANY
  31. COUNT WHILE !(AUTHOR) = SEARCH TO HOWMANY
  32.  
  33.  
  34. DO CASE
  35.  
  36.    CASE HOWMANY = 0
  37.         STORE 0 TO RECNO
  38.         ?
  39.         ? " There is no &SEARCH on the database."
  40.         ?
  41.         WAIT
  42.  
  43.    CASE HOWMANY = 1
  44.         FIND &SEARCH
  45.         STORE # TO RECNO
  46.  
  47.    CASE HOWMANY > 1
  48.         FIND &SEARCH
  49.         LIST WHILE LNAME = &SEARCH AUTHOR, TITLE, PUB
  50.         ?
  51.         INPUT " Which one (by number) " TO RECNO
  52.  
  53. ENDCASE
  54.  
  55. *********** Edit appropriate record, if recno > 0
  56. ERASE
  57. IF RECNO > 0
  58.  
  59.    GOTO RECNO
  60.    *************** Peel out individual keywords from
  61.    *************** the long KEYWORDS field in the
  62.    *************** library database.
  63.    STORE 2 TO START
  64.    STORE 1 TO COUNT
  65.    STORE KEYWORDS TO TEMP
  66.    DO WHILE "," $(KEYWORDS)
  67.       STORE STR(COUNT,1) TO SCOUNT
  68.       STORE $(KEYWORDS,START,@(",",KEYWORDS)-2) TO K&SCOUNT
  69.       REPLACE KEYWORDS WITH $(KEYWORDS,@(",",KEYWORDS)+1,50)
  70.       STORE COUNT+1 TO COUNT
  71.    ENDDO (while "," $keywords)
  72.  
  73.    ************* just in case user deletes any or all
  74.    ************* keywords, subtract 1 from the total number
  75.    ************* of references for this keyword from
  76.    ************* The keywords file.
  77.    SELE SECO
  78.    STORE 1 TO X
  79.    STORE "1" TO MAC
  80.    DO WHILE K&MAC <> " "
  81.       FIND &K&MAC
  82.       REPLACE KEYNO WITH KEYNO-1
  83.       STORE X+1 TO X
  84.       STORE STR(X,1) TO MAC
  85.    ENDDO
  86.  
  87.    ****** Now branch to LIBED2 to do the edit.
  88.    ****** (LIBED2 is stolen from the LIBADD command file.)
  89.    SELE PRIM
  90.    DO LIBED2
  91. ENDIF (recno > 0)
  92.  
  93. **************** Before returning to main menu,
  94. **************** Eliminate any keywords for which there
  95. **************** are no references
  96. ERASE
  97. ? " Updating keyword file.........."
  98. SELE SECO
  99. DELE ALL FOR KEYNO=0
  100. PACK
  101. USE
  102. RETURN
  103. O RECNO
  104.  
  105.