Метод ITextRange::MoveWhile (tom.h)
Начинается с указанного конца диапазона и выполняет поиск, в то время как символы принадлежат к набору, указанному в Cset , а число символов меньше или равно Count. При обнаружении несовпадающего символа диапазон сворачивается до точки вставки.
Синтаксис
HRESULT MoveWhile(
VARIANT *Cset,
long Count,
long *pDelta
);
Параметры
Cset
Тип: VARIANT*
Набор символов, используемый в сопоставлении. Это может быть явная строка символов или индекс набора символов. Дополнительные сведения см. в разделе Наборы совпадений символов.
Count
Тип: long
Максимальное число символов для перемещения. Значение по умолчанию — tomForward, которое выполняет поиск до конца истории. Если значение Count меньше нуля, поиск начинается с начальной позиции и идет назад — к началу истории. Если значение Count больше нуля, поиск начинается с конечной позиции и идет вперед — к концу истории.
pDelta
Тип: long*
Фактическое число символов в конце перемещается. Этот параметр может быть нулевым.
Возвращаемое значение
Тип: HRESULT
Метод возвращает значение HRESULT . Если метод завершается успешно, он возвращает S_OK. Если метод завершается ошибкой, он возвращает один из следующих кодов ошибок. Дополнительные сведения о кодах ошибок COM см. в разделе Обработка ошибок в COM.
Код возврата | Описание |
---|---|
|
Недопустимый набор Cset. |
|
Сбой по какой-либо другой причине. |
Комментарии
Движение, описанное в ITextRange::MoveUntil , является логическим, а не геометрическим. То есть движение к концу или к началу истории. В зависимости от языка, перемещение в конец истории может быть перемещением влево или вправо.
Дополнительные сведения см. в обсуждении В ITextRange и в разделе Примечания статьи ITextRange::Move.
Метод ITextRange::MoveWhile аналогичен методу ITextRange::MoveUntil, но MoveWhile выполняет поиск до тех пор, пока находит элементы набора, указанного в Cset, и нет дополнительного приращения к значению pDelta.
Методы ITextRange::MoveStartWhile и ITextRange::MoveEndWhile перемещают начальную и конечную части соответственно только после всех смежных символов, которые находятся в наборе символов, заданном параметром Cset .
Тип VARIANT в основном предназначен для использования со сценариями IDispatch, такими как Microsoft Visual Basic для приложений (VBA), но его также можно использовать из C или C++. В следующем коде C++ показано, как инициализировать и использовать аргумент VARIANT для сопоставления диапазона цифр в диапазоне r.
VariantInit(&varg);
varg.vt = VT_I4;
varg.lVal = C1_DIGIT;
hr = r.MoveWhile(&varg, tomForward, pDelta); // Move IP past span of digits
Кроме того, можно использовать явную строку, как показано в следующем примере.
VariantInit(&varg);
bstr = SysAllocString("0123456789");
varg.vt = VT_BSTR;
varg.bstr = bstr;
hr =r.MoveWhile(&varg, tomForward, pDelta); // Move IP past span of digits
Следующий пример кода VBA соответствует тексту следующей записи SGML в диапазоне r. Записи SGML начинаются с <keyword ...
> и заканчиваются на </ 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
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | tom.h |
DLL | Msftedit.dll |
См. также раздел
Основные понятия
Справочные материалы