[R] Trier un fichier texte un fonction taille des mots

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Trier un fichier texte un fonction taille des mots

#21

Message par bloodwolff »

Code : Tout sélectionner

$_File1 = FileOpen("dico1", 42)
$_File2 = FileOpen("dico2", 42)
$_File3 = FileOpen("dico3", 42)

Code : Tout sélectionner

Local $pattern_gen = "(?m)(?x)^(\W{" & $min & "," & $max & "})$"
Compte skype : bloodwolfff
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Trier un fichier texte un fonction taille des mots

#22

Message par jchd »

C'est normal. La bibliothèque PCRE employée par AutoIt n'est _pas_ actuellement compilée avec le support UTF-8 (Unicode). Donc les \w, \W et autres métacaractères qui font référence à une propriété Unicode ne fonctionnent pas comme on pourrait le souhaiter dès lors que la chaîne sujet contient des caractères > 0x7F.

Je travaille actuellement sur une solution PCRE (avec support Unicode et dernières nouveautés PCRE) compatible AutoIt (avec fonctions de callbacks) et SQLite (pour mettre à profit l'opérateur REGEXP). Cette DLL sera aussi utilisable par tout programme souhaitant employer l'API standard de PCRE.

C'est un travail en cours à temps très partagé, donc ne retenez pas votre souffle jusqu'à sa sortie !

PCRE = Perl-Compatible Regular Expression
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Trier un fichier texte un fonction taille des mots

#23

Message par jchd »

sylvanie a écrit :D'ailleurs ça donne l'occasion de voir un effet de bords indésirable de l'opérateur ou (|) lorsque c'est l'"expression de droite qui match, on a un double retours : vide pour la partie gaucheet le match de la partie droite.
C'est normal, il y a deux captures, donc deux retours. Au lieu de (abc)|(def) il faut faire ((?:abc)|(?:def)) pour n'avoir qu'une seule capture. Ou dans ce cas, bien plus simplement, (abc|def).
Sinon les 2 expressions en questions sont
- tout ce qui suit un retours chariot avec d'éventuels espaces parasites puis constitué de min à max caractère suivi enventuellement d'espaces parasites jusu'à l'autre retours chariots

-La première ligne avec d'éventuels espaces parasites constituée de min à max caractère suivi enventuellement d'espaces parasites jusu'à l'autre retours chariots
On peut fusionner les deux cas en employant \b : \b(\w{min,max})\b.

Attention : la plupart des métacaractères perdent leur signification spéciale à l'intérieur d'un jeu défini par [].
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Trier un fichier texte un fonction taille des mots

#24

Message par pierrotm777 »

bloodwolff a écrit :

Code : Tout sélectionner

$_File1 = FileOpen("dico1", 42)
$_File2 = FileOpen("dico2", 42)
$_File3 = FileOpen("dico3", 42)

Code : Tout sélectionner

Local $pattern_gen = "(?m)(?x)^(\W{" & $min & "," & $max & "})$"
Ces modifications fonctionnent super bien mais je me retrouve avec un espace entre chaque mot !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Trier un fichier texte un fonction taille des mots

#25

Message par Tlem »

Pouvez-vous essayer ce code sur vos dictionnaires.
Je l'ai essayé sur votre fichier Russe modifié pour qu'il fasse environs 3,5Mo (en dupliquant les lignes pour arriver à 100000 lignes) et il met à peine 6 secondes pour faire le traitement.
Comme j'ai un peut de mal avec les RegExp, je propose ce que je sais faire. ;)
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Trier un fichier texte un fonction taille des mots

#26

Message par bloodwolff »

@ pierrot oui j'avais remarqué et j'ai pris le temps de bidouiller un peu ton script. Diminution du nombre de ligne (De 184 à 116 et j'ai pas eu le temps de toucher au switch :lol: ) mais oublier de le poster :roll:

Ps: J'ai tester de dupliquer le fichier pour atteindre 8,45mo et il le trie en environ 3 secondes :roll:
► Afficher le texte
Compte skype : bloodwolfff
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Trier un fichier texte un fonction taille des mots

#27

Message par Tlem »

bloodwolff a écrit :J'ai tester de dupliquer le fichier pour atteindre 8,45mo et il le trie en environ 3 secondes :roll:
Hummm, j'ai oublié de préciser le matériel utilisé :
Portable C2D 1.66Ghz avec 2,5Go de RAM / Windows XP SP3

De plus cette version n'a pas de limite sur la taille du fichier dictionnaire.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Trier un fichier texte un fonction taille des mots

#28

Message par pierrotm777 »

Merci à tous deux . C'est les russes qui vont être content :wink:
Répondre