![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
битовые последовательности [D6, D7]
Andrey_K_M © (2006-03-23 12:10:00)Здрасте!
Может кто подскажет как лучше организовать побитовую обработку файла. Нужно загрузить в виде ноликов и единичек, а у меня только посимвольно получается. Есть какие-нибудь стандартные типы наподоие TBitFile или типа того?!
Amoeba (2006-03-24 17:41:00) [1]Есть еще и такая ф-ия (библиотека QStrings):
function Q_BitTest(P: Pointer; Index: Integer): Boolean;
asm
BT [EAX],EDX
SETC AL
end;
Можно использовать, или отобразив файл в память, или скопировав его в MemoryStream.
MU (2006-03-24 16:41:00) [2]еще можно на TBits глянуть
Andrey_K_M (2006-03-23 13:50:00) [3]
> Сергей М. © (23.03.06 13:47) [10]
> Проще некуда
Огромное мпасибо!
Andrey_K_M (2006-03-23 13:50:00) [4]то есть спасибо!
Сергей М. (2006-03-23 13:47:00) [5]Проще некуда:
var
b: Byte; //вот некий байт, который ты прочитал из файла
i: Byte; //а это номер интересующего тебя бита в этом байте
Mask: byte; //а это маска для выделения интересующего тебя бита в байте
..
Mask := 1 shl i; //вот ты сформировал маску
if (b and Mask) = Mask then //вот ты наложил маску и посмотрел на бит через "дырку в маске"
i-й бит - это "единичка"
then
i-й бит - это "нолик"
Джо (2006-03-23 13:46:00) [6]> [8] Andrey_K_M (23.03.06 13:38)
Копать нужно в сторону операторов and и or. Полезно будет ознакомиться со статьей по этому вопросу на сайте А. Подгорецкого (точной ссылки не помню).
Andrey_K_M (2006-03-23 13:38:00) [7]
> зачем Ассемблер, если все то же самое с неменьшим успехом
> делается прямо на Паскале ?
Так я про это и спрашиваю: "Подскажите пожалуйста каким методом можно воспользоваться?" Я такими вопросами не занимался и не могу сообразить как лучше сделать. Не надо мне все "разжовывать", но если кто подскажет в каком направлении идти (не в смысле общепринятых напрвалений) в этом вопросе, то дальше разбирусь. Заранее спасибо. :)
Сергей М. (2006-03-23 13:31:00) [8]
> А с помощью ассемблера можно кинуть байт в регистр и разобрать
> его по битам?
А зачем Ассемблер, если все то же самое с неменьшим успехом делается прямо на Паскале ?
Andrey_K_M (2006-03-23 13:30:00) [9]
> Прочесть файл побитово возможности нет.
Плохо! Гы... А с помощью ассемблера можно кинуть байт в регистр и разобрать его по битам?
Джо (2006-03-23 13:30:00) [10]> [5] Andrey_K_M (23.03.06 13:30)
> А с помощью ассемблера можно кинуть байт в
> регистр и разобрать его по битам?
Это можно даже без использования ассемблера.
Джо (2006-03-23 13:10:00) [11]
> Andrey_K_M
Прочесть файл побитово возможности нет.
Defunct (2006-03-23 13:09:00) [12]Организовывайте, кто не дает? байт - это 8 бит.
Andrey_K_M (2006-03-23 13:06:00) [13]В смысле нет встроенных средств? Или не подскажут? А вручную организовать есть возможность?
Defunct (2006-03-23 12:52:00) [14]> Может кто подскажет как лучше организовать побитовую обработку файла.
быстрее всего на 32х битном процессоре получится, по 32-бита за раз.
> Есть какие-нибудь стандартные типы наподоие TBitFile или типа того?!
нет