Necesito analizar los bytes de un archivo para que solo tome los datos después de que se haya identificado una determinada secuencia de bytes. Por ejemplo, si la secuencia es simplemente 0xFF (un byte), entonces puedo utilizar LINQ en la colección:Cómo localizar una secuencia de valores (específicamente, bytes) dentro de una colección más grande en .NET
byte[] allBytes = new byte[] {0x00, 0xFF, 0x01};
var importantBytes = allBytes.SkipWhile(byte b => b != 0xFF);
// importantBytes = {0xFF, 0x01}
Pero, ¿existe una manera elegante para detectar una secuencia de varios bytes - por ejemplo, 0xFF, 0xFF: ¿especialmente uno que retrocede en caso de que comience a obtener una coincidencia falsa positiva?
¿No tiene que preocuparse de lo que podría suponer .NET sobre la codificación y tales que daría resultados erróneos? – thelsdj
Creo que mientras busque una secuencia de bytes exacta, la codificación realmente no importará (siempre que tanto la fuente como la secuencia de búsqueda tengan la misma codificación). Puede usar la clase ASCIIEncoding para ayudar a convertir de ida y vuelta. – MikeP