Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad DataReceivedEventArgs.Data

 

Publicado: octubre de 2016

Obtiene la línea de caracteres que escribió para un redirigida Process flujo de salida.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)

Public ReadOnly Property Data As String

Valor de propiedad

Type: System.String

La línea que se ha escrito un Process a su redirigida StandardOutput o StandardError secuencia.

Al redirigir el StandardOutput o StandardError secuencia de un Process al controlador de eventos, se genera un evento cada vez que el proceso escribe una línea en la secuencia redirigida. El Data propiedad es la línea que la Process se escribió en la secuencia de salida redirigida. Puede usar el controlador de eventos del Data propiedad para filtrar los resultados del proceso o escribir el resultado en una ubicación alternativa. Por ejemplo, puede crear un controlador de eventos que almacena todas las líneas de salida de error en un archivo de registro de errores designado.

Una línea se define como una secuencia de caracteres seguida de una línea ("\n") o un retorno de carro seguido inmediatamente por una línea de salto ("\r\n"). Los caracteres de línea se codifican utilizando la página de códigos ANSI predeterminada. El Data propiedad no incluye el carácter retorno de carro o avance de línea.

Cuando la secuencia redirigida se cierra, se envía una línea null al controlador de eventos. Asegúrese de sus comprobaciones de controlador de eventos del Data propiedad adecuadamente antes de tener acceso. Por ejemplo, puede usar el método estático String.IsNullOrEmpty para validar el Data propiedad en el controlador de eventos.

En el ejemplo de código siguiente se muestra un controlador de evento simple asociado el OutputDataReceived eventos. El controlador de eventos recibe líneas de texto de la secuencia StandardOutput flujo, da formato al texto y escribe el texto en la pantalla.

Imports System
Imports System.IO
Imports System.Diagnostics
Imports System.Text

Module Module1
    Dim lineCount As Integer = 0
    Dim output As StringBuilder = New StringBuilder()

    Sub Main()
        Dim process As New Process()
        process.StartInfo.FileName = "ipconfig.exe"
        process.StartInfo.UseShellExecute = False
        process.StartInfo.RedirectStandardOutput = True
        AddHandler process.OutputDataReceived, AddressOf OutputHandler
        process.Start()

        ' Asynchronously read the standard output of the spawned process. 
        ' This raises OutputDataReceived events for each line of output.
        process.BeginOutputReadLine()
        process.WaitForExit()

        Console.WriteLine(output)

        process.WaitForExit()
        process.Close()

        Console.WriteLine(Environment.NewLine + Environment.NewLine + "Press any key to exit.")
        Console.ReadLine()
    End Sub

    Sub OutputHandler(sender As Object, e As DataReceivedEventArgs)
        If Not String.IsNullOrEmpty(e.Data) Then
            lineCount += 1

            ' Add the text to the collected output.
            output.Append(Environment.NewLine + "[" + lineCount.ToString() + "]: " + e.Data)
        End If
    End Sub
End Module

.NET Framework
Disponible desde 2.0
Volver al principio
Mostrar: