DataReceivedEventArgs.Data Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá řádek znaků, které byly zapsány do přesměrovaného Process výstupního datového proudu.
public:
property System::String ^ Data { System::String ^ get(); };
public string? Data { get; }
public string Data { get; }
member this.Data : string
Public ReadOnly Property Data As String
Hodnota vlastnosti
Řádek, který byl napsán přidruženým Process k jeho přesměrování StandardOutput nebo StandardError datovému proudu.
Příklady
Následující příklad kódu znázorňuje jednoduchou obslužnou rutinu události přidruženou k OutputDataReceived události. Obslužná rutina události přijímá textové řádky z přesměrovaného StandardOutput datového proudu, formátuje text a zapíše text na obrazovku.
using System;
using System.IO;
using System.Diagnostics;
using System.Text;
class StandardAsyncOutputExample
{
private static int lineCount = 0;
private static StringBuilder output = new StringBuilder();
public static void Main()
{
Process process = new Process();
process.StartInfo.FileName = "ipconfig.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += new DataReceivedEventHandler((sender, e) =>
{
// Prepend line numbers to each line of the output.
if (!String.IsNullOrEmpty(e.Data))
{
lineCount++;
output.Append("\n[" + lineCount + "]: " + e.Data);
}
});
process.Start();
// Asynchronously read the standard output of the spawned process.
// This raises OutputDataReceived events for each line of output.
process.BeginOutputReadLine();
process.WaitForExit();
// Write the redirected output to this application's window.
Console.WriteLine(output);
process.WaitForExit();
process.Close();
Console.WriteLine("\n\nPress any key to exit.");
Console.ReadLine();
}
}
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
Poznámky
Když přesměrujete StandardOutput nebo StandardError stream Process obslužné rutiny události, vyvolá se událost pokaždé, když proces zapíše řádek do přesměrovaného datového proudu. Vlastnost Data je řádek, který Process napsal do přesměrovaného výstupního datového proudu. Obslužná rutina události může tuto vlastnost použít Data k filtrování výstupu procesu nebo zápisu výstupu do alternativního umístění. Můžete například vytvořit obslužnou rutinu události, která ukládá všechny výstupní řádky chyb do určeného souboru protokolu chyb.
Čára je definována jako posloupnost znaků následovaných kanálem řádku ("\n") nebo návrat na začátek řádku bezprostředně následovaný podáváním řádku ("\r\n"). Znaky řádku jsou kódovány pomocí výchozí systémové znakové stránky ANSI. Vlastnost Data neobsahuje ukončující návrat na začátek řádku nebo odřádkování.
Při zavření přesměrovaného datového proudu se do obslužné rutiny události odešle řádek null. Před přístupem k Data obslužné rutině události zkontrolujte vlastnost odpovídajícím způsobem. Statickou metodu String.IsNullOrEmpty můžete například použít k ověření Data vlastnosti v obslužné rutině události.