Metodo ITextRange::MoveWhile (tom.h)

Inizia alla fine di un intervallo e cerca mentre i caratteri appartengono al set specificato da Cset e mentre il numero di caratteri è minore o uguale a Count. L'intervallo viene compresso in un punto di inserimento quando viene trovato un carattere non corrispondente.

Sintassi

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

Parametri

Cset

Tipo: VARIANT*

Carattere impostato per l'uso nella corrispondenza. Potrebbe trattarsi di una stringa esplicita di caratteri o di un indice del set di caratteri. Per altre informazioni, vedere Set di corrispondenze di caratteri.

Count

Tipo: long

Numero massimo di caratteri da spostare in passato. Il valore predefinito è tomForward, che cerca alla fine della storia. Se Count è minore di zero, la ricerca inizia alla posizione iniziale e torna indietro verso l'inizio della storia. Se Count è maggiore di zero, la ricerca inizia alla posizione finale e va avanti verso la fine della storia.

pDelta

Tipo: long*

Il numero effettivo di caratteri finali viene spostato. Questo parametro può essere null.

Valore restituito

Tipo: HRESULT

Il metodo restituisce un valore HRESULT . Se il metodo ha esito positivo, restituisce S_OK. Se il metodo ha esito negativo, restituisce uno dei codici di errore seguenti. Per altre informazioni sui codici di errore COM, vedere Gestione degli errori in COM.

Codice restituito Descrizione
E_INVALIDARG
Cset non è valido.
S_FALSE
Errore per qualche altro motivo.

Commenti

Il movimento descritto da ITextRange::MoveUntil è logico anziché geometrico. Questo è il movimento verso la fine o verso l'inizio di una storia. A seconda della lingua, lo spostamento alla fine della storia potrebbe spostarsi a sinistra o spostarsi verso destra.

Per altre informazioni, vedere la discussione in ITextRange e la sezione Osservazioni di ITextRange::Move.

Il metodo ITextRange::MoveWhile è simile a ITextRange::MoveUntil, ma MoveWhile cerca finché trova i membri del set specificato da Cset e non esiste un incremento aggiuntivo per il valore pDelta.

I metodi ITextRange::MoveStartWhile e ITextRange::MoveEndWhile spostano rispettivamente l'inizio e la fine, incollando rispettivamente tutti i caratteri contigui presenti nel set di caratteri specificati dal parametro Cset.

Il tipo VARIANT è destinato principalmente a essere usato con scenari IDispatch come Microsoft Visual Basic, Applications Edition (VBA), ma può essere facilmente usato da C o C++. Il codice C++ seguente illustra come inizializzare e usare l'argomento VARIANT per la corrispondenza di un intervallo di cifre nell'intervallo r.

VariantInit(&varg);
varg.vt = VT_I4;
varg.lVal = C1_DIGIT;
hr = r.MoveWhile(&varg, tomForward, pDelta); // Move IP past span of digits

In alternativa, è possibile usare una stringa esplicita, come nell'esempio seguente.

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

Il codice di esempio VBA seguente corrisponde al corpo della prossima voce Standard Generalized Markup Language (SGML) in un intervallo, r. Le voci SGML iniziano con e terminano con <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
                           

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione tom.h
DLL Msftedit.dll

Vedi anche

Informazioni concettuali

ITextRange

Sposta

MoveEndWhile

MoveStartWhile

MoveUntil

Riferimento

Modello a oggetti testo