FindReplaceDirection

FindReplaceDirection enumeration

Especifica la dirección para las operaciones de reemplazo.

public enum FindReplaceDirection

Valores

NombreValorDescripción
Forward0Los elementos coincidentes se reemplazan del primero al último.
Backward1Los elementos coincidentes se reemplazan desde el último hasta el primero.

Ejemplos

Muestra cómo determinar en qué dirección una operación de búsqueda y reemplazo recorre el documento.

public void Direction(FindReplaceDirection findReplaceDirection)
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Inserte tres ejecuciones que podamos buscar usando un patrón de expresiones regulares.
    //Coloca una de esas carreras dentro de un cuadro de texto.
    builder.Writeln("Match 1.");
    builder.Writeln("Match 2.");
    builder.Writeln("Match 3.");
    builder.Writeln("Match 4.");

    // Podemos usar un objeto "FindReplaceOptions" para modificar el proceso de búsqueda y reemplazo.
    FindReplaceOptions options = new FindReplaceOptions();

    // Asigna una devolución de llamada personalizada a la propiedad "ReplacingCallback".
    TextReplacementRecorder callback = new TextReplacementRecorder();
    options.ReplacingCallback = callback;

    // Establezca la propiedad "Dirección" en "FindReplaceDirection.Backward" para obtener la función de búsqueda y reemplazo
    // operación para comenzar desde el final del rango y recorrer de regreso hasta el principio.
    // Establezca la propiedad "Dirección" en "FindReplaceDirection.Forward" para obtener la función de búsqueda y reemplazo
    // operación para comenzar desde el principio del rango y recorrer hasta el final.
    options.Direction = findReplaceDirection;

    doc.Range.Replace(new Regex(@"Match \d*"), "Replacement", options);

    Assert.AreEqual("Replacement.\r" +
                    "Replacement.\r" +
                    "Replacement.\r" +
                    "Replacement.", doc.GetText().Trim());

    switch (findReplaceDirection)
    {
        case FindReplaceDirection.Forward:
            Assert.AreEqual(new[] { "Match 1", "Match 2", "Match 3", "Match 4" }, callback.Matches);
            break;
        case FindReplaceDirection.Backward:
            Assert.AreEqual(new[] { "Match 4", "Match 3", "Match 2", "Match 1" }, callback.Matches);
            break;
    }
}

/// <summary>
/// Registra todas las coincidencias que ocurren durante una operación de búsqueda y reemplazo en el orden en que tienen lugar.
/// </summary>
private class TextReplacementRecorder : IReplacingCallback
{
    ReplaceAction IReplacingCallback.Replacing(ReplacingArgs e)
    {
        Matches.Add(e.Match.Value);
        return ReplaceAction.Replace;
    }

    public List<string> Matches { get; } = new List<string>();
}

Ver también