[R] Trier un fichier texte un fonction taille des mots
Posté : jeu. 25 nov. 2010 15:54
Bonjour,
Voici mon dernier problème sur le traitement d'un dictionnaire.
A partir d'un dictionnaire, je souhaite en créer 3 autre dans lesquels:
dico1.txt sera composé des mots de taille de 2 à 5 lettres
dico2.txt sera composé des mots de taille de 6 à 8 lettres
dico3.txt sera composé des mots de taille de 9 et plus .
Le tout étant trié par ordre alphabétique .
j'ai donc testé cela:
Décidement , le traitement de fichier ne me va pas du tout !
Voici mon dernier problème sur le traitement d'un dictionnaire.
A partir d'un dictionnaire, je souhaite en créer 3 autre dans lesquels:
dico1.txt sera composé des mots de taille de 2 à 5 lettres
dico2.txt sera composé des mots de taille de 6 à 8 lettres
dico3.txt sera composé des mots de taille de 9 et plus .
Le tout étant trié par ordre alphabétique .
j'ai donc testé cela:
Code : Tout sélectionner
#Include <File.au3>
#include <string.au3>
$Path1 = @ScriptDir&"\dicofr.txt"
$File1 = FileOpen ($Path1,0)
$out_file1=FileOpen(@TempDir&"\tmpwork1",2)
$out_file2=FileOpen(@TempDir&"\tmpwork2",2)
$out_file3=FileOpen(@TempDir&"\tmpwork3",2)
$taille_block=500 ; on va lire / écrire par paquets de 500 lignes
While 1
$block=""
For $ind=1 to $taille_block
$block&=FileReadLine($File1)&@CRLF
$err=@error
if $err=-1 Then ExitLoop
Next
$rep = StringLen($block)
Switch $rep
Case 2 to 5
FileWrite($out_file1,$block)
If $err=-1 Then ExitLoop
Case 6 to 8
FileWrite($out_file2,$block)
If $err=-1 Then ExitLoop
Case 9 to 20
FileWrite($out_file3,$block)
If $err=-1 Then ExitLoop
Endswitch
WEnd
FileClose($File1)
FileClose($out_file1)
FileClose($out_file2)
FileClose($out_file3)
FileMove(@TempDir&"\tmpwork1",@ScriptDir&"\dico1.txt",1)
FileMove(@TempDir&"\tmpwork1",@ScriptDir&"\dico2.txt",1)
FileMove(@TempDir&"\tmpwork1",@ScriptDir&"\dico3.txt",1)