Découpage d'un texte en mots

Gwladys Paté

- Titre : Découpage d'un texte en mots

- Auteur : Gwladys Paté

- Parution : 2 juin 2006

- Licence : Copyright ® 2006 4D s.a.. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

♪ Il peut être utile de découper un texte en mots, notamment pour créer un index.

Voici une méthode qui vous permet de faire ce découpage suivant un motif précis. Pour cela, nous utiliserons une RegEx (ou plus communément appelée expression régulière). Ces expressions sont utilisées pour parcourir de façon automatique des textes à la recherche de certains ensembles de caractères.

1. ` cette méthode s'appuie sur l'utilisation d'un plug-in freeware "Qfree"(*)

2. ` à télécharger et installer dans le dossier "Win4DX" ou "Mac4DX"

4. C_TEXTE($1) `texte à découper

5. C_ENTIER LONG($nb_mot;$ii;$err)

6. C_BLOB($blob_target)

7. C_ENTIER LONG($offset)

9. `Initialisation des tableaux nécessaires à la commande Qfree

10. TABLEAU ENTIER LONG($_offset;0)

11. TABLEAU ENTIER LONG($_longueur;0)

13. `Motif de découpage suivant le principe des expressions régulières.

14. $patern:="\\W+(\\w*)\\W*"

16. `Transformation du texte en BLOB (QFree travaille avec des blobs)

17. TEXTE VERS BLOB($1;$blob_target;Texte sans longueur )

18. $flags:=0

20. `Utilisation de la fontion QF_Resplit de QFree qui, à partir d'un blob et d'un motif,

21. `retourne la position de départ de chaque motif et leur longueur correspondante dans les tableaux.

22. $err:=QF_Resplit ($patern;$blob_target;$_offset;$_longueur;$flags)

24. Si ($err=0)

26. $nb_mot:=Taille tableau($_offset)

28. `Transfert des mots trouvés selon le motif dans un tableau

29. TABLEAU TEXTE(_mot;$nb_mot)

31. Boucle ($ii;1;$nb_mot)

32. $offset :=$_offset{$ii}

33. Si ($offset>=0)

34. _mot{$ii}:=BLOB vers texte($blob_target;Texte sans longueur;$offset;$_longueur{$ii})

35. Fin de si

36. Fin de boucle

37. _mot:=0

39. Sinon

41. TABLEAU TEXTE(_mot;0)

43. Fin de si

(*) QFree :
Vous trouverez plus d'informations sur Qfree sur le site de son éditeur Escape : http://www.escape.gr/q/index.html
Et vous pouvez le télécharger à cette adresse : http://www.escape.gr/q/q_download.html