Как мне прочитать шорты из двоичного файла, начиная с позиции x, для значений y? - PullRequest
1 голос
/ 28 июня 2010

Мне нужно прочитать определенное количество коротких (int16) точек данных из двоичного файла, начиная с определенной позиции. Спасибо!

Ответы [ 2 ]

4 голосов
/ 28 июня 2010

Что-то вроде этого должно сделать это для вас:

private IEnumerable<Int16> getShorts(string fileName, int start, int count)
using(var stream = File.OpenRead(fileName))
{
   stream.Seek(start);
   var reader = new BinaryReader(stream);
   var list = new List<int16>(count);
   for(var i = 0;i<count;i++)
   {
      list.Add(reader.ReadInt16());
   }
}

, что в основном и было написано CAsper только в коде

3 голосов
/ 28 июня 2010

Вы можете просто вызвать метод Seek в потоке, который вы передаете BinaryReader, в позицию в файле, с которой вы хотите начать чтение.

Затем, когда вы передадите поток в BinaryReader, вы можете вызывать метод ReadInt16 столько раз, сколько вам нужно.

...