Je dois analyser les octets d'un fichier de sorte que je prenne seulement les données après qu'une certaine séquence d'octets a été identifiée. Par exemple, si la séquence est tout simplement 0xFF (un octet), alors je peux utiliser LINQ sur la collection:Comment localiser une séquence de valeurs (en particulier, octets) dans une collection plus grande dans .NET
byte[] allBytes = new byte[] {0x00, 0xFF, 0x01};
var importantBytes = allBytes.SkipWhile(byte b => b != 0xFF);
// importantBytes = {0xFF, 0x01}
Mais est-il une façon élégante de détecter une séquence multi-octets - par exemple 0xFF, 0xFF - en particulier celui qui revient en arrière au cas où il commence à avoir une fausse correspondance positive?
N'êtes-vous pas à vous soucier de ce que .NET pourrait supposer sur l'encodage et ce qui donnerait des résultats erronés? – thelsdj
Je crois que tant que vous êtes à la recherche d'une séquence d'octets exacte, l'encodage ne va pas vraiment importer (tant que la source et la séquence de recherche sont dans le même encodage). Vous pouvez utiliser la classe ASCIIEncoding pour vous aider à effectuer des conversions. – MikeP