Accueil CanalOpenSource
SourceServer
Langage xShell
BasicBrick
tcp OpenClient
tcp_OpenServer

DesignServer

openSource Shop Gallery
Main Street
freeway Avenue

Liens :

txt_AddTo
txt_ArraysToText
txt_CutOut

 

Mot entier Recherche dans la sélection


Documentation | Méthode | Chaine | Retour

txt_CutOut
Méthode txt_CutOut
  
  
Syntaxe : txt_CutOut (ptrTexte; {Sep}; {opt}) > Résultat
  
Paramètres
  
ParamètreTypage Description  
ptrTextePointeur>pointeur sur la chaine de caractère à traiter  
SepTexte>optionnel, séparateur  
OptTexte>optionnel, modifie le comportement standard  
RésultatTexte<résultat de la découpe  
  
  
Description :
  
Cette méthode découpe le texte qui lui est passé sous forme de pointeur dans ptrTexte et renvois la partie coupée dans Résultat. Le découpage se fait en fonction du séparateur et la chaine de caractère est racourcie à chaque appel.
  
Sep est le séparateur, s'il est omis, il utilise la variable d'environnement txt_CurrentSep qui est paramétrée par la méthode txt_SetCurrentSep et qui a par défaut la valeur retournée par txt_Sep c'est à dire "]-$-[".
  
Le fonctionnement standard de la méthode txt_CutOut est de renvoyer toute la chaine si le séparateur n'est pas ou plus trouvé dans ptrTexte et de vider ptrTexte de son contenu.
Le paramètre Opt permet de modifier ce comportement. Si ce paramètre est passé, dans le cas ou le séparateur n'est pas trouvé, la méthode renvois une chaine vide et ptrTexte conserve son contenu.
Le premier mode de fonctionnement est intéressant lorsque la chaine de caractère ne se termine pas par le séparateur et que cela signifie qu'on est arrivé à la fin de la chaine. On récupère le dernier morceau et la chaine traitée est vidée.
Le deuxième mode est préférable lorsqu'il s'agit de traiter une chaine où le fait de ne pas trouver le séparateur ne signifie pas que l'extraction est fini. L'extraction doit pouvoir se poursuivre avec un autre séparateur. La chaine de caractère doit être conservée et la méthode ne doit rien renvoyer.
  
Exemple :
  
Voici un extrait de la méthode prp_TextToArray qui construit un tableau à partir d'un texte. $cr contient un retour chariot. L'absence possible du séparateur, à la dernière ligne du texte, n'empèche pas de traiter le texte jusqu'au bout.
  
   Tant que (txt_vt1#"")
      $sizeof:=Taille tableau($2->)+1
      INSERER LIGNES($2->;$sizeof)
      $2->{$sizeof}:=txt_CutOut (->txt_vt1;$cr)
    Fin tant que
  
Autre cas extrait de la méthode www_DownloadLogsFromWebSrv qui télécharge les logs du serveur web pour les intégrer à la base de statistiques. Dans cette méthode, le séparateur est une chaine de 40 tirets bas suivi d'un retour chariot. La chaine contenue dans $ptrString dépointé ne doit pas être modifiée si le séparateur n'est pas trouvé. Après l'appel à txt_CutOut, on test le contenu de la variable affectée par la méthode pour savoir si elle est vide ou non.
  
        $Delimit:="_"*40+<>CR
  
[...]
  
Boucle ($y;1;$ArraySize)
          $ptrString->:=$ptrString->+$ptrArrLog->{$y}
          Repeter
            $ptrHttpHeader->:=txt_CutOut ($ptrString;$Delimit;Opt )
            Si ($ptrHttpHeader->#"")
[...]




Documentation | Méthode | Chaine  | Haut de page | Retour