Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Découpage d'un texte en mots

Date de publication : 02/06/2006

Par Gwladys Paté (Technicienne Support Technique)
 



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.


      ` cette méthode s'appuie sur l'utilisation d'un plug-in freeware "Qfree"(*)
      ` à télécharger et installer dans le dossier "Win4DX" ou "Mac4DX"

   C_TEXTE($1) `texte à découper
   C_ENTIER LONG($nb_mot;$ii;$err)
   C_BLOB($blob_target)
   C_ENTIER LONG($offset)

      `Initialisation des tableaux nécessaires à la commande Qfree
   TABLEAU ENTIER LONG($_offset;0)
   TABLEAU ENTIER LONG($_longueur;0)

      `Motif de découpage suivant le principe des expressions régulières.
   $patern:="\\W+(\\w*)\\W*"

      `Transformation du texte en BLOB (QFree travaille avec des blobs)
   TEXTE VERS BLOB($1;$blob_target;Texte sans longueur )
   $flags:=0

      `Utilisation de la fontion QF_Resplit de QFree qui, à partir d'un blob et d'un motif,
      `retourne la position de départ de chaque motif et leur longueur correspondante dans les tableaux.

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

   Si ($err=0)

      $nb_mot:=Taille tableau($_offset)

         `Transfert des mots trouvés selon le motif dans un tableau
      TABLEAU TEXTE(_mot;$nb_mot)

      Boucle ($ii;1;$nb_mot)
         $offset :=$_offset{$ii}
         Si ($offset>=0)
            _mot{$ii}:=BLOB vers texte($blob_target;Texte sans longueur;$offset;$_longueur{$ii})
         Fin de si
      Fin de boucle
      _mot:=0

   Sinon

      TABLEAU TEXTE(_mot;0)

   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




Valid XHTML 1.1!Valid CSS!

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.

Contacter le responsable de la rubrique 4D