home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / text / FAQ / bonus / faq_newsgroups.rexx < prev    next >
OS/2 REXX Batch file  |  1995-10-08  |  2KB  |  73 lines

  1. /*  ARexx script
  2.     for :Pearls/text/FAQ on CD Meeting Pearls III
  3.     scanning and reporting
  4.     $VER: faq_newsgroups.rexx 0.1 (31.08.95) ©1995 Khamsonh Marcel Khounlivong
  5.     */
  6.  
  7. OPTIONS RESULTS
  8.  
  9. PARSE ARG faq datadir
  10.  
  11. faq     = Strip(faq)
  12. datadir = Strip(datadir)    /* kommt schon von faq_newsgroupsall.rexx mit Endung '/' */
  13.  
  14. IF (datadir == "") THEN EXIT 20
  15.  
  16. arcnames    = "Comp-answers-archive-name: Archive-Name: Archive-name: archive-name:"
  17. dates       = "Date:"
  18. newsgroups  = "Newsgroups:"
  19. arcname     = ""
  20. date        = ""
  21. groups      = ""
  22.  
  23. months      = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
  24. days        = "Mon Tue Wed Thu Fri Sat Sun"
  25. string      = ""
  26.  
  27. IF (~Open(file,faq,r)) THEN DO
  28.     SAY ''faq "- can't open"
  29.     EXIT
  30.     END
  31.  
  32. CALL scan_word
  33. CALL scan_word
  34. CALL Close(file)
  35.  
  36. IF (Find(days,Strip(Word(date,1),,',')) ~= 0) THEN
  37.     date = SubStr(date, WordIndex(date,2))
  38.  
  39. day   = Right(Word(date,1),2,'0')
  40. month = Right(Find(months,Word(date,2)),2,'0')
  41. year  = Right(Word(date,3),2)
  42.  
  43. IF ((arcname ~= "") & (date ~= "") & (groups ~= "")) THEN DO
  44.     info = Left(arcname,60) year || month || day faq
  45.     DO i=1 FOR Words(groups)
  46.         IF (Pos('answers',Word(groups,i)) ~= 0) THEN
  47.             ADDRESS command 'Echo >>'datadir || Word(groups,i)'.files "'info'"'
  48.         END
  49.     END
  50. ELSE SAY ''faq "- missing keyword"
  51. EXIT
  52.  
  53. scan_word:
  54.     DO UNTIL (Strip((string ~= "")) | Eof(file))
  55.         string = ReadLn(file)
  56.         END
  57.     DO WHILE (Strip((string ~= "")) & ~Eof(file))
  58.         string = Translate(string,' ','09'x)
  59.         IF ((arcname ~= "") & (date ~= "") & (found ~= 0)) THEN LEAVE
  60.         first = Strip(Word(string,1))
  61.         SELECT
  62.             WHEN (Find(arcnames, first) ~= 0) THEN
  63.                 arcname = SubStr(string,WordIndex(string,2))
  64.             WHEN (Find(dates, first) ~= 0) THEN
  65.                 date = SubStr(string,WordIndex(string,2))
  66.             WHEN (Find(newsgroups, first) ~= 0) THEN
  67.                 groups = Translate(SubStr(string,WordIndex(string,2)),' ',',')
  68.             OTHERWISE NOP
  69.             END
  70.         string = ReadLn(file)
  71.         END
  72.     RETURN
  73.