Método ITextRange::MoveWhile (tom.h)
Começa em um final especificado de um intervalo e pesquisa enquanto os caracteres pertencem ao conjunto especificado por Cset e enquanto o número de caracteres é menor ou igual a Count. O intervalo é recolhido a um ponto de inserção quando um caractere não correspondente é encontrado.
Sintaxe
HRESULT MoveWhile(
VARIANT *Cset,
long Count,
long *pDelta
);
Parâmetros
Cset
Tipo: VARIANT*
O conjunto de caracteres a ser usado na correspondência. Isso pode ser uma cadeia de caracteres explícita ou um índice de conjunto de caracteres. Para obter mais informações, consulte Conjuntos de correspondência de caracteres.
Count
Tipo: long
Número máximo de caracteres a serem passados. O valor padrão é tomForward, que pesquisa até o final da história. Se Count for menor que zero, a pesquisa começará na posição inicial e retrocederá em direção ao início da história. Se Count for maior que zero, a pesquisa começará na posição final e avançará até o final da história.
pDelta
Tipo: long*
A contagem real de caracteres final é movida. Este parâmetro pode ser nulo.
Retornar valor
Tipo: HRESULT
O método retorna um valor HRESULT . Se o método for bem-sucedido, ele retornará S_OK. Se o método falhar, ele retornará um dos seguintes códigos de erro. Para obter mais informações sobre códigos de erro COM, consulte Tratamento de erros em COM.
Código de retorno | Descrição |
---|---|
|
Cset não é válido. |
|
Falha por algum outro motivo. |
Comentários
O movimento descrito por ITextRange::MoveUntil é lógico em vez de geométrico. Ou seja, o movimento está no final ou no início de uma história. Dependendo do idioma, mover-se para o final da história pode estar se movendo para a esquerda ou se movendo para a direita.
Para obter mais informações, consulte a discussão em ITextRange e a seção Comentários de ITextRange::Move.
O método ITextRange::MoveWhile é semelhante a ITextRange::MoveUntil, mas MoveWhile pesquisa desde que encontre membros do conjunto especificado por Cset e não haja incremento adicional para o valor pDelta.
Os métodos ITextRange::MoveStartWhile e ITextRange::MoveEndWhile movem o início e o fim, respectivamente, apenas após todos os caracteres contíguos encontrados no conjunto de caracteres especificados pelo parâmetro Cset .
O tipo VARIANT destina-se principalmente a ser usado com cenários de IDispatch, como o Microsoft Visual Basic for Applications (VBA), mas também pode ser prontamente usado de C ou C++. O código C++ a seguir ilustra como inicializar e usar o argumento VARIANT para corresponder a um intervalo de dígitos no intervalo r.
VariantInit(&varg);
varg.vt = VT_I4;
varg.lVal = C1_DIGIT;
hr = r.MoveWhile(&varg, tomForward, pDelta); // Move IP past span of digits
Como alternativa, uma cadeia de caracteres explícita pode ser usada, como no exemplo a seguir.
VariantInit(&varg);
bstr = SysAllocString("0123456789");
varg.vt = VT_BSTR;
varg.bstr = bstr;
hr =r.MoveWhile(&varg, tomForward, pDelta); // Move IP past span of digits
O código de exemplo do VBA a seguir corresponde ao corpo da próxima entrada SGML (Linguagem de Marcação Generalizada Padrão) em um intervalo, r. As entradas SGML começam com <keyword ...
> e terminam com </ . 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
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | tom.h |
DLL | Msftedit.dll |
Confira também
Conceitual
Referência