Решения задачи с Ulearn

Практика «Ресурсы» 

Необходимость писать собственные стримы бывает не так уж и часто. Однако, такие ситуации бывают.

Например, допустим, что вы разрабатываете компьютерную игру с множеством мелких файлов. Очевидно, что хотелось бы эти файлы убрать в один. Допустим, что вы по какой-то причине не хотите использовать zip-сжатие (что было бы самым адекватным подходом к этой ситуации), и вместо этого хотите изобрести свой формат.

Ваша задача — по известному формату написать стрим, который читает секцию файла. Ваш стрим будет получать другой, базовый стрим, который содержит данные, и ваша задача — найти нужную секцию и прочитать. Эта задача осмысленна, поскольку, например, Bitmap.FromStream принимает именно Stream, и вы можете подставить туда ваш стрим для того, чтобы все работало.

Дополнительное ограничение: из базового стрима нужно читать порциями ровно по 1024 байт. Число произвольное, но это ограничение нужно: плохо слишком часто обращаться к стриму (сам факт чтения несет дополнительные расходы, в некоторых случаях не зависящие от количества прочитанных байт), и плохо читать все сразу, поскольку стрим может быть очень большой и не поместиться в памяти. Найдите стандартный способ обеспечить это условие.

Скачайте проект Streams.Resources. Детали формата можно посмотреть в конструкторе TestStream.

Стоимость решения этой задачи всего 100 рублей, закажи решения у меня 🙂

Обновлено: 20.11.2018 — 11:05

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.