Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: CL | DM;

Вниз

битовые последовательности   Найти похожие ветки 

 
Andrey_K_M   (2006-03-23 12:10) [0]

Здрасте!
Может кто подскажет как лучше организовать побитовую обработку файла. Нужно загрузить в виде ноликов и единичек, а у меня только посимвольно получается. Есть какие-нибудь стандартные типы наподоие TBitFile или типа того?!


 
Defunct ©   (2006-03-23 12:52) [1]

> Может кто подскажет как лучше организовать побитовую обработку файла.

быстрее всего на 32х битном процессоре получится, по 32-бита за раз.

> Есть какие-нибудь стандартные типы наподоие TBitFile или типа того?!

нет


 
Andrey_K_M   (2006-03-23 13:06) [2]

В смысле нет встроенных средств? Или не подскажут? А вручную организовать есть возможность?


 
Defunct ©   (2006-03-23 13:09) [3]

Организовывайте, кто не дает? байт - это 8 бит.


 
Джо ©   (2006-03-23 13:10) [4]


> Andrey_K_M

Прочесть файл побитово возможности нет.


 
Andrey_K_M   (2006-03-23 13:30) [5]


> Прочесть файл побитово возможности нет.

Плохо! Гы... А с помощью ассемблера можно кинуть байт  в регистр и разобрать его по битам?


 
Джо ©   (2006-03-23 13:30) [6]

> [5] Andrey_K_M   (23.03.06 13:30)
> А с помощью ассемблера можно кинуть байт  в
> регистр и разобрать его по битам?

Это можно даже без использования ассемблера.


 
Сергей М. ©   (2006-03-23 13:31) [7]


> А с помощью ассемблера можно кинуть байт  в регистр и разобрать
> его по битам?


А зачем Ассемблер, если все то же самое с неменьшим успехом делается прямо на Паскале ?


 
Andrey_K_M   (2006-03-23 13:38) [8]


>  зачем Ассемблер, если все то же самое с неменьшим успехом
> делается прямо на Паскале ?

Так я про это и спрашиваю: "Подскажите пожалуйста каким методом можно воспользоваться?" Я такими вопросами не занимался и не могу сообразить как лучше сделать. Не надо мне все "разжовывать", но если кто подскажет в каком направлении идти (не в смысле общепринятых напрвалений) в этом вопросе, то дальше разбирусь. Заранее спасибо. :)


 
Джо ©   (2006-03-23 13:46) [9]

> [8] Andrey_K_M   (23.03.06 13:38)

Копать нужно в сторону операторов and и or. Полезно будет ознакомиться со статьей по этому вопросу на сайте А. Подгорецкого (точной ссылки не помню).


 
Сергей М. ©   (2006-03-23 13:47) [10]

Проще некуда:

var
 b: Byte; //вот некий байт, который ты прочитал из файла
 i: Byte; //а это номер интересующего тебя бита в этом байте
 Mask: byte; //а это маска для выделения интересующего тебя бита в байте

..

 Mask := 1 shl i; //вот ты сформировал маску

if (b and Mask) = Mask then //вот ты наложил маску и посмотрел на бит через "дырку в маске"
   i-й бит - это "единичка"
then
   i-й бит - это "нолик"


 
Andrey_K_M   (2006-03-23 13:50) [11]


> Сергей М. ©   (23.03.06 13:47) [10]
> Проще некуда

Огромное мпасибо!


 
Andrey_K_M   (2006-03-23 13:50) [12]

то есть спасибо!


 
MU ©   (2006-03-24 16:41) [13]

еще можно на TBits  глянуть


 
Amoeba ©   (2006-03-24 17:41) [14]

Есть еще и такая ф-ия (библиотека QStrings):

function Q_BitTest(P: Pointer; Index: Integer): Boolean;
asm
       BT      [EAX],EDX
       SETC    AL
end;


Можно использовать, или отобразив файл в память, или скопировав его в MemoryStream.



Страницы: 1 вся ветка

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
2-1143104010
Виктор1123
2006-03-23 11:53
2006.04.09
Начал изучать БД...


2-1143012909
Вовка
2006-03-22 10:35
2006.04.09
Параметры типа array of Char в dll


2-1143437746
Chai
2006-03-27 09:35
2006.04.09
Замена ExtractFileName в Win API


1-1141306181
MegaVolt
2006-03-02 16:29
2006.04.09
Как выводить статус от нескольких потоков?


4-1137952300
spyrytus
2006-01-22 20:51
2006.04.09
Как заставить работать функцию из DLL "вечно".