ITextRange::MoveUntil-Methode (tom.h)
Sucht bis zu Zeichen zählen für das erste Zeichen in dem von Cset angegebenen Zeichensatz. Wenn ein Zeichen gefunden wird, wird der Bereich bis zu diesem Punkt reduziert. Der Start der Suche und die Richtung werden ebenfalls durch Count angegeben.
Syntax
HRESULT MoveUntil(
VARIANT *Cset,
long Count,
long *pDelta
);
Parameter
Cset
Typ: VARIANT*
Der in der Übereinstimmung verwendete Zeichensatz. 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, erfolgt die Suche rückwärts, beginnend mit der Startposition. Wenn Count größer als 0 ist, wird die Suche ab Ende weitergeleitet.
pDelta
Typ: long*
Die Anzahl der Zeichen, die die Einfügemarke verschoben wird, plus 1 für eine Übereinstimmung, wenn Count größer als 0 ist, und –1 für eine Übereinstimmung, wenn Count kleiner als 0 ist. Der Zeiger 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 |
---|---|
|
Cset ist ungültig. |
|
Fehler aus einem anderen Grund. |
Hinweise
Wenn kein Zeichen übereinstimmt, bleibt der Bereich unverändert.
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 Methoden ITextRange::MoveStartUntil und ITextRange::MoveEndUntil verschieben den Start und das Ende, bis das erste Zeichen gefunden wird, das sich auch in der vom Cset-Parameter angegebenen Menge befindet.
Die ITextRange::MoveUntil-Methode ähnelt ITextRange::MoveWhile, es gibt jedoch zwei Unterschiede. Zunächst verschiebt MoveUntil eine Einfügemarke, bis das erste Zeichen gefunden wird, das zum von Cset angegebenen Zeichensatz gehört. Zweitens zählt in MoveUntil das übereinstimmende Zeichen als zusätzliches Zeichen im Wert, der in pDelta zurückgegeben wird. Dadurch können Sie wissen, dass das Zeichen an einem Ende des Bereichs oder am anderen Ende des Bereichs zum Cset gehört, obwohl die Einfügemarke an einem der Enden des Bereichs bleibt.
Angenommen, der Bereich r ist eine Einfügemarke. Rufen Sie auf, um festzustellen, ob sich das Zeichen in r (d. h. r.GetChar()) in Cset befindet.
r.MoveUntil(Cset, 1)
Wenn sich das Zeichen in Cset befindet, ist der Rückgabewert 1, und die Einfügemarke wird nicht verschoben. Rufen Sie auf, um zu überprüfen, ob das zeichen voran r in Cset ist.
r.MoveUntil(Cset, -1)
Wenn sich das Zeichen in Cset befindet, ist der Rückgabewert –1.
Die folgende Microsoft Visual Basic for Applications -Unterroutine (VBA) gibt alle Zahlen in dem durch den Bereich "r" identifizierten Textabschnitt aus.
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
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
Referenz