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
E_INVALIDARG
Cset ist ungültig.
S_FALSE
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

GetChar

ITextRange

Verschieben

MoveEndUntil

MoveStartUntil

MoveWhile

Referenz

Textobjektmodell