Compartir a través de


Método ITextRange::MoveWhile (tom.h)

Comienza en un extremo especificado de un intervalo y busca mientras los caracteres pertenecen al conjunto especificado por Cset y mientras que el número de caracteres es menor o igual que Count. El intervalo se contrae en un punto de inserción cuando se encuentra un carácter no coincidente.

Sintaxis

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

Parámetros

Cset

Tipo: VARIANT*

Juego de caracteres que se va a usar en la coincidencia. Puede ser una cadena explícita de caracteres o un índice de juego de caracteres. Para obtener más información, vea Juegos de coincidencias de caracteres.

Count

Tipo: long

Número máximo de caracteres que se van a mover más allá. El valor predeterminado es tomForward, que busca al final del artículo. Si Count es menor que cero, la búsqueda comienza en la posición inicial y va hacia atrás, hacia el principio del artículo. Si Count es mayor que cero, la búsqueda comienza en la posición final y avanza, hacia el final del artículo.

pDelta

Tipo: long*

Se mueve el recuento real de caracteres. Este parámetro puede ser NULL.

Valor devuelto

Tipo: HRESULT

El método devuelve un valor HRESULT . Si el método se realiza correctamente, devuelve S_OK. Si se produce un error en el método, devuelve uno de los siguientes códigos de error. Para obtener más información sobre los códigos de error COM, vea Control de errores en COM.

Código devuelto Descripción
E_INVALIDARG
Cset no es válido.
S_FALSE
Error por algún otro motivo.

Comentarios

El movimiento descrito por ITextRange::MoveUntil es lógico en lugar de geométrico. Es decir, el movimiento está hacia el final o hacia el inicio de una historia. Dependiendo del idioma, al final de la historia se podría mover a la izquierda o a la derecha.

Para obtener más información, vea la discusión en ITextRange y la sección Comentarios de ITextRange::Move.

El método ITextRange::MoveWhile es similar a ITextRange::MoveUntil, pero MoveWhile busca mientras encuentre miembros del conjunto especificado por Cset y no haya ningún incremento adicional en el valor pDelta.

Los métodos ITextRange::MoveStartWhile e ITextRange::MoveEndWhile mueven el inicio y el final, respectivamente, pegando todos los caracteres contiguos que se encuentran en el conjunto de caracteres especificados por el parámetro Cset .

El tipo VARIANT está pensado principalmente para usarse con escenarios de IDispatch como Microsoft Visual Basic para Aplicaciones (VBA), pero también se puede usar desde C o C++. El siguiente código de C++ muestra cómo inicializar y usar el argumento VARIANT para hacer coincidir un intervalo de dígitos en el 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, se podría usar una cadena explícita, como en el ejemplo siguiente.

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

El siguiente código de ejemplo de VBA coincide con el cuerpo de la siguiente entrada del lenguaje de marcado generalizado estándar (SGML) en un intervalo, r. Las entradas SGML comienzan por <keyword ...> y terminan con </ . 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 Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado tom.h
Archivo DLL Msftedit.dll

Consulte también

Conceptual

ITextRange

Mover

MoveEndWhile

MoveStartWhile

MoveUntil

Referencia

Modelo de objetos de texto