Главная страница
    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.47 MB
Время: 0.011 c
2-1143012937
apl
2006-03-22 10:35
2006.04.09
Select - подскажите


1-1141315009
JJ
2006-03-02 18:56
2006.04.09
Открыть документ MS Office


15-1142440059
kilonet
2006-03-15 19:27
2006.04.09
Delphi vs TurboPascal


15-1142499130
Pa6oTa
2006-03-16 11:52
2006.04.09
!СРОЧНО! - небольшая БД, работа на 3дня.


2-1143383529
JustABeginner
2006-03-26 18:32
2006.04.09
Сделать глобальной компоненту формы, не меняя её название





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский