| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > чтение побайтно/посимвольно. |
| Автор: PsyNejumi303 21.3.2006, 21:29 | ||
| как можно прочесть определенное количество байт или символов из файла? пытаюсь тэги из мп3 вытащить.
компилица норм. но когда начинает выполняца эта функция, то вот что пишет: "Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection." помогите плиз. |
| Автор: -ser- 22.3.2006, 06:25 | ||
| вся индексация в программировании начинается с 0. не вдаваясь в семантику написанного, я не знаю где находятся теги в МР3. здесь мы пытаемся прочитать последние 128 байт, тогда начало указывается
|
| Автор: PsyNejumi303 22.3.2006, 08:57 | ||
| -ser-, так тож не получаецо. тож самое пишет. а тэги первой версии как раз лежат в последних 128 байтах. я ща сделал вот так:
но цыкл мне чот не очень нравицо. |
| Автор: mr.DUDA 22.3.2006, 11:37 | ||
Второй аргумент Read указывает смещение не в потоке, а в массиве-приёмнике. Поэтому юзаем FileStream.Seek, причём юзаем только 1 раз, и читаем не побайтно а сразу 128 байт. В Seek можно указать смещение не вперёд а назад (от конца файла), что нам и нужно. Окончательно:
Добавлено @ 11:40 З.Ы. мп3-тэг лежит в двоичном виде, поэтому если выводить его в string "как есть" - получим набор кракозябл с нормальными строками посредине. |
| Автор: PsyNejumi303 22.3.2006, 12:29 |
| mr.DUDA, во. бальшое спасибо. так красивше чем мой цыкл. и умнее) а есть возможность вытащить например ток 4 байта находящиеся где-нить по середине. |