ITextRange::MoveWhile-Methode (tom.h)

Beginnt an einem angegebenen Ende eines Bereichs und sucht, während die Zeichen zu dem von Cset angegebenen Satz gehören und die Anzahl der Zeichen kleiner oder gleich Anzahl ist. Der Bereich wird auf eine Einfügemarke reduziert, wenn ein nicht übereinstimmende Zeichen gefunden wird.

Syntax

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

Parameter

Cset

Typ: VARIANT*

Der Zeichensatz, der in der Übereinstimmung verwendet werden soll. Dies kann eine explizite Zeichenfolge oder ein Zeichensatzindex sein. Weitere Informationen finden Sie unter Zeichen-Übereinstimmungssätze.

Count

Typ: long

Maximale Anzahl von Zeichen, an die sich zu verschieben ist. Der Standardwert ist tomForward, der bis zum Ende des Storys sucht. Wenn Count kleiner als 0 ist, beginnt die Suche an der Startposition und geht rückwärts – zum Anfang der Geschichte. Wenn Count größer als 0 ist, beginnt die Suche an der Endposition und geht vorwärts – gegen Ende der Geschichte.

pDelta

Typ: long*

Die tatsächliche Anzahl der Zeichen wird verschoben. Dieser Parameter kann NULL sein.

Rückgabewert

Typ: HRESULT

Die -Methode gibt einen HRESULT-Wert zurück. Wenn die Methode erfolgreich ist, gibt sie S_OK zurück. Wenn die Methode fehlschlägt, gibt sie einen der folgenden Fehlercodes zurück. Weitere Informationen zu COM-Fehlercodes finden Sie unter Fehlerbehandlung in COM.

Rückgabecode Beschreibung
E_INVALIDARG
Cset ist ungültig.
S_FALSE
Fehler aus einem anderen Grund.

Hinweise

Die von ITextRange::MoveUntil beschriebene Bewegung ist logisch und nicht geometrisch. Das heißt, Bewegung geht zum Ende oder zum Anfang einer Geschichte. Je nach Sprache kann der Wechsel zum Ende der Geschichte nach links oder rechts erfolgen.

Weitere Informationen finden Sie in der Diskussion in ITextRange und im Abschnitt Hinweise von ITextRange::Move.

Die ITextRange::MoveWhile-Methode ähnelt ITextRange::MoveUntil, aber MoveWhile sucht so lange, wie Elemente der von Cset angegebenen Menge gefunden werden, und es gibt keine zusätzliche Inkrementierung für den Wert pDelta.

Die Methoden ITextRange::MoveStartWhile und ITextRange::MoveEndWhile verschieben den Start und das Ende jeweils direkt über alle zusammenhängenden Zeichen, die sich in einem durch den Cset-Parameter angegebenen Zeichensatz befinden.

Der VARIANT-Typ ist in erster Linie für die Verwendung mit IDispatch-Szenarien wie Microsoft Visual Basic for Applications (VBA) vorgesehen, kann aber auch problemlos von C oder C++ verwendet werden. Der folgende C++-Code veranschaulicht, wie das VARIANT-Argument zum Abgleich einer Ziffernspanne im Bereich r initialisiert und verwendet wird.

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

Alternativ kann eine explizite Zeichenfolge verwendet werden, wie im folgenden Beispiel.

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

Der folgende VBA-Beispielcode entspricht dem Textkörper des nächsten SGML-Eintrags (Standard Generalized Markup Language) in einem Bereich, r. SGML-Einträge beginnen mit <keyword ...> und enden mit </ . 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
                           

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile tom.h
DLL Msftedit.dll

Siehe auch

Konzept

ITextRange

Verschieben

MoveEndWhile

MoveStartWhile

MoveUntil

Referenz

Textobjektmodell