Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
1-1141400291
RomanH
2006-03-03 18:38
2006.04.09
Работа с ComboBox


15-1142583574
Курдль
2006-03-17 11:19
2006.04.09
С праздником!!!


2-1143306036
Gleb
2006-03-25 20:00
2006.04.09
Вот дан исходный модуль.Это программа строит график функции.Помог


1-1140553994
Дубинка
2006-02-21 23:33
2006.04.09
Автозапуск dll


2-1143272912
AlexeyT
2006-03-25 10:48
2006.04.09
TWebBrowser - copy/select all/find





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский