Otrzymuję strumienie systemowe IO ze źródła. Będę kontynuował obiekt strumienia tylko wtedy, gdy zawiera ciąg "MSTND"
.Wyszukiwanie wzoru w System.IO.Stream
Zdaję sobie sprawę, że niewiele mogę zrobić w strumieniu, chyba że skonwertuję go na ciąg. Konwersja łańcuchów służy tylko do dopasowywania podciągów. Ale nie chcę robić niczego, co zajmuje dużo czasu lub przestrzeni. Jak intensywny czas/przestrzeń jest konwersją ze strumienia do ciągu tylko w celu dopasowania podciągów?
Kod Pisałem to:
private bool StreamHasString (Stream vStream)
{
bool containsStr = false;
byte[] streamBytes = new byte[vStream.Length];
vStream.Read(streamBytes, 0, (int) vStream.Length);
string stringOfStream = Encoding.UTF32.GetString(streamBytes);
if (stringOfStream.Contains("MSTND"))
{
containsStr = true;
}
return containsStr ;
}