home *** CD-ROM | disk | FTP | other *** search
/ DTP Toolbox / DTPToolbox.iso / propage4.0 / arexx / sharpwpfileprocessor.pprx < prev    next >
Encoding:
Text File  |  1994-10-10  |  5.6 KB  |  179 lines

  1. /*
  2. This genie pre-processes files from the Sharp word-processor. It gets rid of the more numerous codes, but leaves the garbage at the start and end to be deleted manually. 
  3. Written by Don Cox, April '93. Not Public Domain. All rights reserved.
  4. Sharp version March 94
  5. */
  6.  
  7. trace n
  8. call SafeEndEdit.rexx()
  9. call ppm_AutoUpdate(0)
  10. address command
  11.  
  12.  
  13. filename = ppm_GetFileName("Open Text File:", "", "")
  14. if filename = '' then call exit_msg("No File Selected")
  15. if ~open("input",filename,"R") then call exit_msg("Could not open input file")
  16. filelength = word(statef(filename),2)
  17. fileblocks = (filelength % 10000)+1
  18. filename2 = filename||".proc"
  19.  
  20. if ~open("output",filename2,"W") then call exit_msg("Could not open output file")
  21.  
  22. blocknumber = 1
  23. do until eof("input")
  24.     text = readch("input",10000)
  25.     call ppm_ShowStatus("  Processing block "blocknumber" of "fileblocks)
  26.     /* remove header */
  27.     tlength = length(text)
  28.     if blocknumber = 1 then text = right(text,tlength-432)
  29.  
  30.     blocknumber = blocknumber +1
  31.     position = 0 /* replace formfeeds with "next box" command */
  32.     do forever
  33.         position = pos("0c"x, text,position+1)
  34.         if position = 0 then break
  35.         text = delstr(text,position,1)
  36.         text = insert("\!",text,position-1)
  37.         end
  38.  
  39.     position = 0 /* replace 1E with £ */
  40.     do forever
  41.         position = pos("1E"x, text,position+1)
  42.         if position = 0 then break
  43.         text = delstr(text,position,1)
  44.         text = insert("£",text,position-1)
  45.         end
  46.     position = 0 /* replace B2 with " */
  47.     do forever
  48.         position = pos("B2"x, text,position+1)
  49.         if position = 0 then break
  50.         text = delstr(text,position,1)
  51.         text = insert("22"x,text,position-1)
  52.         end
  53.  
  54.     position = 0 /* now replace left double quotes after spaces */
  55.     do forever
  56.         position = pos(" "||"22"x, text,position+1)
  57.         if position = 0 then break
  58.         text = delstr(text,position,2)
  59.         text = insert(" "||"b9"x,text,position-1)
  60.         end
  61.     position = 0 /* now replace left double quotes after linefeeds */
  62.     do forever
  63.         position = pos("0a22"x, text,position+1)
  64.         if position = 0 then break
  65.         text = delstr(text,position,2)
  66.         text = insert("0ab9"x,text,position-1)
  67.         end
  68.     position = 0 /* now replace right double quotes */
  69.     do forever
  70.         position = pos("22"x, text,position+1)
  71.         if position = 0 then break
  72.         text = delstr(text,position,1)
  73.         text = insert("b2"x,text,position-1)
  74.         end
  75.  
  76.     /* Remove codes 83 & D6 */
  77.     text = compress(text,"83"x)
  78.     text = compress(text,"D6"x)
  79.     
  80.     position = 0 /* now remove single line endings */
  81.     do forever
  82.         position = pos("81BA"x, text,position+1)
  83.         if position = 0 then break
  84.         text = delstr(text,position,2)
  85.         text = insert(" ", text,position-1) 
  86.         end        
  87.     position = 0 /* now remove odd codes */
  88.     do forever
  89.         position = pos("B1"x, text,position+1)
  90.         if position = 0 then break
  91.         text = delstr(text,position,1)
  92.         text = insert("0a"x, text,position-1) 
  93.         end    
  94.  
  95.     position = 0 /* now replace hard line-end codes */
  96.     do forever
  97.         position = pos("81B9"x, text,position+1)
  98.         if position = 0 then break
  99.         text = delstr(text,position,2)
  100.         text = insert("0a"x,text,position-1) 
  101.         end    
  102.     position = 0 /* now replace double line-end codes */
  103.     do forever
  104.         position = pos("0a0a"x, text,position+1)
  105.         if position = 0 then break
  106.         text = delstr(text,position,2)
  107.         text = insert("0a"x,text,position-1) 
  108.         end    
  109.     position = 0 /* now replace tab codes */
  110.     do forever
  111.         position = pos("81c9"x, text,position+1)
  112.         if position = 0 then break
  113.         text = delstr(text,position,1)
  114.         text = insert("09"x,text,position-1) 
  115.         end    
  116.     position = 0 /* now replace odd codes */
  117.     do forever
  118.         position = pos("C1"x, text,position+1)
  119.         if position = 0 then break
  120.         text = delstr(text,position,1)
  121.         text = insert("**",text,position-1) 
  122.         end    
  123.  
  124.     position = 0 /* replace sets of 4 spaces with tabs */
  125.     do forever
  126.         position = pos("    ", text,position+1)
  127.         if position = 0 then break
  128.         text = delstr(text,position,4)
  129.         text = insert(" \s",text,position-1) /* the space allows long strings of tabs to be broken */
  130.         end        
  131.     position = -3 /* break up rows of ===== */
  132.     do forever
  133.         position = pos("====", text,position+4)
  134.         if position = 0 then break
  135.         text = delstr(text,position,4)
  136.         text = insert("== =",text,position-1)
  137.         end        
  138.     position = -3 /* break up rows of ++++ */
  139.     do forever
  140.         position = pos("++++", text,position+4)
  141.         if position = 0 then break
  142.         text = delstr(text,position,4)
  143.         text = insert("++ +",text,position-1)
  144.         end        
  145.     position = -3 /* break up rows of **** */
  146.     do forever
  147.         position = pos("****", text,position+4)
  148.         if position = 0 then break
  149.         text = delstr(text,position,4)
  150.         text = insert("** *",text,position-1)
  151.         end        
  152.     position = -3 /* break up rows of ~~~~ */
  153.     do forever
  154.         position = pos("~~~~", text,position+4)
  155.         if position = 0 then break
  156.         text = delstr(text,position,4)
  157.         text = insert("~~ ~",text,position-1)
  158.         end            
  159.     call writech("output",text)
  160.     end
  161.  
  162.  
  163. call exit_msg("Done")
  164.  
  165.  
  166.  
  167. /*
  168.  *  Exit Msg Procedure
  169.  */
  170. exit_msg: procedure 
  171. do
  172.     parse arg message
  173.     if message ~= '' then call ppm_Inform(1, message,)
  174.     call ppm_AutoUpdate(1)
  175.     call ppm_ClearStatus()
  176.     exit
  177. end
  178.  
  179.