Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменение позиции в файле поБИТно [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]

Конечно можно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо