2017-05-23 9 views
-1
string hexstr = http.Body.ToString(); 
if (hexstr.Contains("1f8b")) 
{ 
    Stream str = http.Body.ToMemoryStream(); 
    str.Position = str.Seek(0x1f8b, SeekOrigin.Begin); 
    using (var zipStream = new GZipStream(str, CompressionMode.Decompress)) 
    using (var resultStream = new MemoryStream()) 
    { 
     zipStream.CopyTo(resultStream); 
     return resultStream.ToArray(); 
    } 
} 

Wie kann ich einen Stream trimmen und seinen Anfangspunkt als 1F8B machen.Wie kann ich einen Stream schneiden? C#

+0

str.Seek gibt mir die richtige Position? –

+0

Scheint, Sie haben die 'GZipStream' Klasse missbraucht. Sie sollten den Ausgabestream an den Konstruktor und nicht an die Eingabe übergeben. –

+0

Soory, meine Schuld. –

Antwort

1

Suche nach dem Suchst und Schneiden der Schnur, so dass es mit dem Suchst beginnt - man kann es so leicht tun:

string hexstr = http.Body.ToString(); 
string search = "1f8b"; 
if (hexstr.Contains(search)) 
{ 
    int pos = hexstr.IndexOf(search); 
    hexstr = hexstr.Substring(pos, hexstr.Length - pos); 
    // do something additional with hexstr... 
} 
Verwandte Themen