home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d9xx / d925 / donsgenies.lha / DonsGenies / FrenchGenies.lha / Rexx / TraitementFichierASCII.pprx < prev    next >
Text File  |  1993-08-03  |  5KB  |  155 lines

  1. /*         
  2. @BTraitementFichierASCII @P @I Ecrit et © Don Cox avril 1993
  3. @IN'est pas du Domaine Publique. Tous Droits Réservés.
  4. Traduit et modifié par Fabien Larini le 29/07/93.
  5.  
  6. Ce Génie permet de traiter un fichier ASCII afin d'éviter certains
  7. problèmes. Ce Génie convertit les sauts de pages en boîte suivante,
  8. les retourschariots-sautsdeligne en sautsdeligne, ...
  9. Ce Génie sauve le résultat dans le même répertoire et le même nom plus 
  10. le suffixe .proc que le fichier de départ.
  11. */
  12.  
  13. /*ASCIIFileProcessor*/
  14. /*
  15. This genie pre-processes Doc files and other ASCII files. It breaks up long lines of ==== etc., converts double quotes, replaces formfeeds with the Pro Page "next box" code, and deals with PC and Mac line endings. 
  16. Written by Don Cox, April '93. Not Public Domain. All rights reserved.
  17. */
  18.  
  19. trace n
  20.  
  21. if ~show('l', "gdarexxsupport.library") then
  22.     if ~addlib("gdarexxsupport.library",0,-30) then
  23.             call exit_msg("Installez la gdarexxsupport.library dans le répertoire libs: avant de lancer ce Génie")
  24.  
  25.  
  26. call SafeEndEdit.rexx()
  27. call ppm_AutoUpdate(0)
  28. address command
  29.  
  30.  
  31. filename = ppm_GetFileName("Fichier Texte à Traiter", "", "")
  32. if filename = '' then call exit_msg("Pas de Fichier Choisi")
  33. if ~open("input",filename,"R") then call exit_msg("Ne peus pas Lire le fichier")
  34. filelength = word(statef(filename),2)
  35. fileblocks = (filelength % 10000)+1
  36. filename2 = filename||".proc"
  37.  
  38. if ~open("output",filename2,"W") then call exit_msg("Ne peus pas Ecrire le Fichier")
  39.  
  40. blocknumber = 1
  41. do until eof("input")
  42.     text = readch("input",10000)
  43.     call ppm_ShowStatus("Traitement en cours sur le Bloc "blocknumber" of "fileblocks)
  44.     blocknumber = blocknumber +1
  45.     position = 0 /* replace formfeeds with "next box" command */
  46.     do forever
  47.         position = pos("0c"x, text,position+1)
  48.         if position = 0 then break
  49.         text = delstr(text,position,1)
  50.         text = insert("\!",text,position-1)
  51.         end
  52.     position = 0 /* replace CR-LF with LF, for MSDOS files */
  53.     do forever
  54.         position = pos("0d0a"x, text,position+1)
  55.         if position = 0 then break
  56.         text = delstr(text,position,1)
  57.         end
  58.     position = 0 /* now we can replace CR with LF, for Mac files */
  59.     do forever
  60.         position = pos("0d"x, text,position+1)
  61.         if position = 0 then break
  62.         text = delstr(text,position,1)
  63.         text = insert("0a"x,text,position-1)
  64.         end
  65.     position = 0 /* now replace tabs with Mspace-tab, so that runs of tabs can be broken. */
  66.     do forever
  67.         position = pos("09"x, text,position+1)
  68.         if position = 0 then break
  69.         text = delstr(text,position,1)
  70.         text = insert(" \s",text,position-1)
  71.         end
  72. /*    position = 0 /* now replace left double quotes after spaces */
  73.     do forever
  74.         position = pos(" "||"22"x, text,position+1)
  75.         if position = 0 then break
  76.         text = delstr(text,position,2)
  77.         text = insert(" "||"b9"x,text,position-1)
  78.         end
  79.     position = 0 /* now replace left double quotes after linefeeds */
  80.     do forever
  81.         position = pos("0a22"x, text,position+1)
  82.         if position = 0 then break
  83.         text = delstr(text,position,2)
  84.         text = insert("0ab9"x,text,position-1)
  85.         end
  86.     position = 0 /* now replace right double quotes */
  87.     do forever
  88.         position = pos("22"x, text,position+1)
  89.         if position = 0 then break
  90.         text = delstr(text,position,1)
  91.         text = insert("b2"x,text,position-1)
  92.         end*/
  93.     position = 0 /* replace sets of 4 spaces with tabs */
  94.     do forever
  95.         position = pos("    ", text,position+1)
  96.         if position = 0 then break
  97.         text = delstr(text,position,4)
  98.         text = insert(" \s",text,position-1) /* the \127 allows long strings of tabs to be broken */
  99.         end        
  100.     position = -3 /* break up rows of ===== */
  101.     do forever
  102.         position = pos("====", text,position+4)
  103.         if position = 0 then break
  104.         text = delstr(text,position,4)
  105.         text = insert("=== ",text,position-1)
  106.         end        
  107.     position = -3 /* break up rows of ++++ */
  108.     do forever
  109.         position = pos("++++", text,position+4)
  110.         if position = 0 then break
  111.         text = delstr(text,position,4)
  112.         text = insert("+++ ",text,position-1)
  113.         end        
  114.     position = -3 /* break up rows of **** */
  115.     do forever
  116.         position = pos("****", text,position+4)
  117.         if position = 0 then break
  118.         text = delstr(text,position,4)
  119.         text = insert("*** ",text,position-1)
  120.         end        
  121.     position = -3 /* break up rows of ~~~~ */
  122.     do forever
  123.         position = pos("~~~~", text,position+4)
  124.         if position = 0 then break
  125.         text = delstr(text,position,4)
  126.         text = insert("~~~ ",text,position-1)
  127.         end   
  128.     position = -3 /* break up rows of ---- */
  129.     do forever
  130.         position = pos("----", text,position+4)
  131.         if position = 0 then break
  132.         text = delstr(text,position,4)
  133.         text = insert("--- ",text,position-1)
  134.         end            
  135.     call writech("output",text)
  136.     end
  137.  
  138.  
  139. call exit_msg("Terminé")
  140.  
  141.  
  142.  
  143. /*
  144.  *  Exit Msg Procedure
  145.  */
  146. exit_msg: procedure 
  147. do
  148.     parse arg message
  149.     if message ~= '' then call ppm_Inform(1, message,)
  150.     call ppm_AutoUpdate(1)
  151.     call ppm_ClearStatus()
  152.     exit
  153. end
  154.  
  155.