![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение позиции в файле поБИТно [D6, WinXP]
Zaletchik © (2005-10-27 09:55:00)Можно ли при работе с файлом изменять текущую позицию не побайтно, а побитно? Заранее благодарен.
Anatoly Podgoretsky (2005-10-29 11:55:00) [1]Файл можно рассматривать как непрерывный поток битов. Тогда разделяем обязанности, пусть система позиционирует побайтно, а мы в программе побитно, путем сдвигов и пересылок.
Если задачу правильно понял, то так ее и решать.
01000101.00101010.01010100.10010101.00101010.1010... ->
00101001.01010010.10100100.10101001.01010101.0...
Для удобства можно задействовать и TBits
Германн (2005-10-29 01:42:00) [2]Кластеры, трэки, цилиндры и т.д. - это, конечно, СУПЕР.
Но ведь в сабже фигурирует файл, а не диск!?
tesseract (2005-10-28 20:48:00) [3]
> Информация читается треками(цилиндрами) за один оборот диска.
Цилиндры в современных винтах вещь сугубо логическая. Реально всё решает контроллер.
Zaletchik (2005-10-28 16:52:00) [4]Спасибо за помощь!
isasa (2005-10-27 11:18:00) [5]Ну, раз пошла такая пьянка...
Боюсь, что .... :)
Сабжевый вопрос, в том виде, каком его понимает автор, лишен смысла.
если на физическом уровне
Информация читается треками(цилиндрами) за один оборот диска. А контроллер уже решает, есть требуемый сектор в буфере, или нет.
Ну а в буфере, как всегда, адресация побайтовая.
tesseract (2005-10-27 11:11:00) [6]
> Можно ли при работе с файлом изменять текущую позицию не
> побайтно, а побитно? Заранее благодарен.
Невозможно да и не нужно.
Читай файл блоками по многу байт. И потом выделяй биты.
isasa прав драйвер файловой системы (по крайней мере в windows 95+) всё равно считает кластер, а то и несколько целиком. Это связано с механизмом кэширования и упреждающего чтения/записи.
Чапаев (2005-10-27 10:59:00) [7]
> наименьшая адресуемая единица данных - байт.
По определению.
> Боюсь, что для дисковых операций - это кластер.
Сектор, если на физическом уровне. Хотя умельцы и там умудряются побайтную адресацию использовать. ;-) (см. 2B programmers group "Защита от несанкционированного доступа")
isasa (2005-10-27 10:37:00) [8]Digitman © (27.10.05 09:57) [3]
Боюсь, что для дисковых операций - это кластер.
Ega23 (2005-10-27 10:01:00) [9]Читаешь побайтно, а потом 8 раз адресуешься побитно.
Digitman (2005-10-27 09:57:00) [10]
> Zaletchik (27.10.05 09:55)
наименьшая адресуемая единица данных - байт.
BiN (2005-10-27 09:56:00) [11]никак.
Ega23 (2005-10-27 09:55:00) [12]Конечно можно.