home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / text / FAQ / bonus / faq_strip_byKL.rexx < prev   
OS/2 REXX Batch file  |  1995-09-17  |  3KB  |  122 lines

  1. /*  ARexx skript für Meeting Pearls
  2.     Entfernt überflüssige Headerinformationen
  3.     $VER: faq_strip_byKL.rexx 1.1 (17.09.95) ©1995 Khamsonh Marcel Khounlivong
  4.     */
  5.  
  6. OPTIONS RESULTS
  7.  
  8. PARSE ARG keylist destination keepfile stripfile
  9.  
  10. keylist     = Strip(keylist)
  11. destination = Strip(Strip(destination),t,'/')'/'
  12. keepfile    = Strip(keepfile)
  13. stripfile   = Strip(stripfile)
  14.  
  15. CALL AddLib("rexxsupport.library",5,-30)
  16.  
  17. IF (stripfile == "") THEN DO
  18.     SAY "faq_stripheader.rexx ©1995 Khamsonh Marcel Khounlivong"
  19.     SAY "use: [RX] faq_stripheader[.rexx] keylist destination keepfile stripfile"
  20.     EXIT
  21.     END
  22.  
  23. /*  getting all kep keywords */
  24. IF (~Open(keepin,keepfile,r)) THEN DO
  25.     SAY "Can't open" keepfile
  26.     EXIT 20
  27.     END
  28.  
  29. keepstring = ""
  30. IF (Strip(ReadLn(keepin)) ~= 'KEEP') THEN DO
  31.     SAY keepfile "is not keep keyword file"
  32.     EXIT 20
  33.     END
  34. DO WHILE(~Eof(keepin))
  35.     keepstring = keepstring ReadLn(keepin)
  36.     END
  37.  
  38. CALL Close(keepin)
  39.  
  40. /*  getting all strip keywords */
  41. IF (~Open(stripin,stripfile,r)) THEN DO
  42.     SAY "Can't open" stripfile
  43.     EXIT 20
  44.     END
  45.  
  46. stripstring = ""
  47. IF (Strip(ReadLn(stripin)) ~= 'STRIP') THEN DO
  48.     SAY stripfile "is not strip keyword file"
  49.     EXIT 20
  50.     END
  51. DO WHILE(~Eof(stripin))
  52.     stripstring = stripstring ReadLn(stripin)
  53.     END
  54.  
  55. CALL Close(stripin)
  56.  
  57. IF (~Open(infile,keylist,r)) THEN DO
  58.     SAY "Can't open" keylist
  59.     EXIT 20
  60.     END
  61.  
  62. DO FOREVER
  63.     string = ReadLn(infile)
  64.     IF (Eof(infile)) THEN EXIT
  65.  
  66.     faq = destination || Word(string,1)
  67.     IF (~Open(file,faq,r)) THEN SAY "Can't open" faq
  68.     ELSE DO
  69.  
  70.         CALL Open(temp,faq'~',w)
  71.         SAY 'Parsing [' faq ']'
  72.         CALL scan_keys
  73.         CALL scan_keys
  74.  
  75.         pos = Seek(file,0,c)
  76.         endpos = Seek(file,0,e)
  77.         CALL Seek(file,pos,b)
  78.  
  79.         DO WHILE ((endpos - pos) > 65535)
  80.             CALL WriteCh(temp,ReadCh(file,65535))
  81.             pos = pos + 65535
  82.             END
  83.         CALL WriteCh(temp,ReadCh(file,endpos-pos))
  84.  
  85.         CALL Close(temp)
  86.         CALL Close(file)
  87.         CALL Delete(faq)
  88.         CALL Rename(faq'~',faq)
  89.         END
  90.     END
  91.  
  92. scan_keys:
  93.     DO FOREVER
  94.         string = ReadLn(file)
  95.         IF (Strip(string) ~= "") THEN LEAVE
  96.         CALL WriteLn(temp,string)
  97.         END
  98.     DO FOREVER
  99.         first = Word(string,1)
  100.         SELECT
  101.             WHEN ((Left(first,1) == ' ') | (Left(first,1) == '09'x)) THEN
  102.                 CALL WriteLn(temp,string)
  103.             WHEN (Find(keepstring,first) ~= 0) THEN
  104.                 CALL WriteLn(temp,string)
  105.             WHEN (Find(stripstring,first) ~= 0) THEN
  106.                 NOP
  107. /*                SAY 'stripping line WITH keyword ' || first || '' */
  108.             OTHERWISE DO
  109.                 SAY '... urgs - keyword ' || first || ' not found'
  110.                 CALL WriteLn(temp,string)
  111.                 /*  Ergänzen des neuen Keywords, um die Logfile-Größe zu reduzieren */
  112.                 IF (Right(first,1) == ':') THEN ADDRESS command 'ECHO >>' || keepfile first
  113.                 END
  114.             END
  115.         string = ReadLn(file)
  116.         IF (Strip(string) == "") THEN DO
  117.             CALL WriteLn(temp,string)
  118.             LEAVE
  119.             END
  120.         END
  121.     RETURN
  122.