Partager via


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

Commence à l’extrémité spécifiée d’une plage et recherche alors que les caractères appartiennent au jeu spécifié par Cset et que le nombre de caractères est inférieur ou égal à Count. La plage est réduite à un point d’insertion lorsqu’un caractère non correspondant est trouvé.

Syntaxe

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

Paramètres

Cset

Type : VARIANT*

Jeu de caractères à utiliser 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 commence à la position de début et remonte vers le début de l’histoire. Si Count est supérieur à zéro, la recherche commence à la position de fin et se poursuit vers la fin de l’histoire.

pDelta

Type : long*

Le nombre réel de caractères de fin est déplacé. Ce paramètre peut avoir la valeur 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

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.

La méthode ITextRange ::MoveWhile est similaire à ITextRange ::MoveUntil, mais MoveWhile effectue une recherche tant qu’elle trouve les membres de l’ensemble spécifié par Cset et qu’il n’y a pas d’incrément supplémentaire à la valeur pDelta.

Les méthodes ITextRange ::MoveStartWhile et ITextRange ::MoveEndWhile déplacent respectivement le début et la fin juste au-delà de tous les caractères contigus qui se trouvent dans le jeu de caractères spécifié par le paramètre Cset .

Le type VARIANT est principalement destiné à être utilisé avec des scénarios IDispatch comme Microsoft Visual Basic pour Applications (VBA), mais il peut également être facilement utilisé à partir de C ou C++. Le code C++ suivant illustre comment initialiser et utiliser l’argument VARIANT pour faire correspondre une étendue de chiffres dans la plage r.

VariantInit(&varg);
varg.vt = VT_I4;
varg.lVal = C1_DIGIT;
hr = r.MoveWhile(&varg, tomForward, pDelta); // Move IP past span of digits

Vous pouvez également utiliser une chaîne explicite, comme dans l’exemple suivant.

VariantInit(&varg);
bstr = SysAllocString("0123456789");
varg.vt = VT_BSTR;
varg.bstr = bstr;
hr =r.MoveWhile(&varg, tomForward, pDelta);    // Move IP past span of digits

L’exemple de code VBA suivant correspond au corps de l’entrée SGML (Standard Generalized Markup Language) suivante dans une plage, r. Les entrées SGML commencent par et se terminent <keyword ...> par </ . keyword>

r.Find <                  // Get to start of next tag
r.MoveWhile C1_SPACE      // Bypass any space characters
r.MoveEndWhile C1_ALPHA   // Match keyword
s$ = </ + r               // Create VBA string to search for
r.Find >                  // Bypass remainder of start tag
r.FindEnd s$              // Match up to end of closing keyword
r.FindEnd <, tomStart     // Back up to start of end tag
                          // r has body of SGML entry
                           

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

ITextRange

Déplacer

MoveEndWhile

MoveStartWhile

MoveUntil

Référence

Modèle objet texte