Partager via


Méthode ITextRange ::MoveUntil (tom.h)

Recherche jusqu’à Nombre de caractères pour le premier caractère de l’ensemble de caractères spécifié par Cset. Si un caractère est trouvé, la plage est réduite à ce point. Le début de la recherche et la direction sont également spécifiés par Count.

Syntaxe

HRESULT MoveUntil(
  VARIANT *Cset,
  long    Count,
  long    *pDelta
);

Paramètres

Cset

Type : VARIANT*

Jeu de caractères utilisé dans la correspondance. Il peut s’agir d’une chaîne explicite de caractères ou d’un index de jeu de caractères. Pour plus d’informations, consultez Jeux de correspondances de caractères.

Count

Type : long

Nombre maximal de caractères à dépasser. La valeur par défaut est tomForward, qui recherche jusqu’à la fin de l’article. Si Count est inférieur à zéro, la recherche est descendante en commençant à la position de début. Si Count est supérieur à zéro, la recherche commence à la fin.

pDelta

Type : long*

Nombre de caractères déplacés pour le point d’insertion, plus 1 pour une correspondance si Count est supérieur à zéro, et –1 pour une correspondance si Nombre est inférieur à zéro. Le pointeur peut être null.

Valeur retournée

Type : HRESULT

La méthode retourne une valeur HRESULT . Si la méthode réussit, elle retourne S_OK. Si la méthode échoue, elle retourne l’un des codes d’erreur suivants. Pour plus d’informations sur les codes d’erreur COM, consultez Gestion des erreurs dans COM.

Code de retour Description
E_INVALIDARG
Cset n’est pas valide.
S_FALSE
Échec pour une autre raison.

Remarques

Si aucun caractère n’est mis en correspondance, la plage est inchangée.

Le mouvement décrit par ITextRange ::MoveUntil est logique plutôt que géométrique. Autrement dit, le mouvement est vers la fin ou vers le début d’une histoire. Selon la langue, le déplacement vers la fin de l’histoire peut être un déplacement vers la gauche ou vers la droite.

Pour plus d’informations, consultez la discussion dans ITextRange et la section Remarques de ITextRange ::Move.

Les méthodes ITextRange ::MoveStartUntil et ITextRange ::MoveEndUntil déplacent respectivement le début et la fin jusqu’à ce qu’il trouve le premier caractère qui se trouve également dans le jeu spécifié par le paramètre Cset .

La méthode ITextRange ::MoveUntil est similaire à ITextRange ::MoveWhile, mais il existe deux différences. Tout d’abord, MoveUntil déplace un point d’insertion jusqu’à ce qu’il trouve le premier caractère qui appartient au jeu de caractères spécifié par Cset. Deuxièmement, dans MoveUntil , le nombre de caractères correspondants est un caractère supplémentaire dans la valeur retournée dans pDelta. Cela vous permet de savoir que le caractère d’une extrémité de la plage ou de l’autre appartient au Cset , même si le point d’insertion reste à l’une des extrémités de la plage.

Par exemple, supposons que la plage, r, soit un point d’insertion. Pour voir si le caractère au niveau de r (c’est-à-dire, donné par r.GetChar()) est en Cset, appelez

r.MoveUntil(Cset, 1)

Si le caractère est en Cset, la valeur de retour est 1 et le point d’insertion ne se déplace pas. De même, pour voir si le caractère qui précède r est en Cset, appelez

r.MoveUntil(Cset, -1)

Si le caractère est en Cset, la valeur renvoyée est –1.

La sous-routine Microsoft Visual Basic pour Applications (VBA) suivante imprime tous les nombres dans l’article identifié par la plage, r.

Sub PrintNumbers (r As ITextRange)
   r.SetRange 0, 0    // r = insertion point at start of story
   While r.MoveUntil(C1_DIGIT)  // Move r to 1st digit in next number
      r.MoveEndWhile C1_DIGIT  // Select number (span of digits)
      Print r    // Print it
   Wend
End Sub

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête tom.h
DLL Msftedit.dll

Voir aussi

Conceptuel

GetChar

ITextRange

Déplacer

MoveEndUntil

MoveStartUntil

MoveWhile

Référence

Modèle objet texte