У меня есть двоичный файл. Он состоит из 4 сообщений, каждый из которых имеет размер 100 байт. Я хочу снова прочитать последние 2 сообщения. Я использую объект BinaryReader. Я стремлюсь к psosition 200, а затем читаю: BinaryReaderObject.read (charBuffer, 0, 10000), , где charBuffer большой enougth. Я получаю все время, когда гора чтения всегда отсутствует 1. Вместо того, чтобы получать 200, я получаю 199. Вместо того, чтобы получать 400, я получаю 399. Я проверил и увидел, что размер файла правильный, и данные, которые я получаю начинается в нужном месте.чтение файла C# .NET
Thnaks,
Справа. Я думал то же самое, но я думаю, что цифры в порядке (то есть первая запись начинается с 0 и идет до 99, вторая запись начинается со 100, идет до 199 и т. Д.). Поиск позиции 200 кажется правильным местом для начала 3-й записи. –
Где у означает нулевое значение, в файле в том, что я читал? Как я уже сказал, я правильно получаю данные, и количество данных, которые я получаю, отсутствует. –
Компьютеры подсчитываются с нуля. Первый элемент в массиве равен 0, второй - 1 и т. Д. Это называется массивом на основе нуля; потому что он начинается с нуля. Файлы обрабатываются как байт с нулевым основанием, поэтому позиция 200 является 201-м байтом с помощью «нормального» подсчета, объясняя ошибку «один за другим», с которой вы сталкиваетесь. –