![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как прочитать и записать содержимое двоичного TBlobField? [D5, IB5.x]
Мария В. © (2003-04-11 11:43:00)В таблице IBase в поле Blob (subtype 0) храниться битовая маска. Задача такая: есть набор CheckBox-ов (RxCheckListBox), нужно прочитать битовую маску из Blob и соответственно отметить CheckBox-ы (если 00000101, то 1-й и 3-й CheckBox отмечены и т.д.).Преобразовывать в текст нельзя - получается ерунда.
Пробовала через TBlobStream, что-то не получается.
Люди,кто уже боролся с Blob-ами, помогите пожалуйста.
Заранее спасибо.
Карелин Артем (2003-04-11 12:58:00) [1]Факт.
Johnmen (2003-04-11 12:54:00) [2]>Карелин Артем © (11.04.03 12:50)
Да. Но я же уточнил "если маска не слишком велика ".
Карелин Артем (2003-04-11 12:50:00) [3]Johnmen © (11.04.03 12:48)
Я тоже хотел сгорча сделать тако заявление, но почесав чайник решил, что в RxCheckListBox их может набраться туева хуча.
Johnmen (2003-04-11 12:48:00) [4]Для хранения битовых масок лучше использовать integer (если маска не слишком велика :)). Тогда и работа с такими полями проста, быстра и прозрачна...
Карелин Артем (2003-04-11 12:40:00) [5]Итак, записываем маску в BlobStream. Устанавливаем позицию в 0. Читаем в некий буфер данные методом
function Read(var Buffer; Count: Longint): Longint;Если есть желание, то в строку.
Дальше на примере 1 байта так:
var i:TBits;
j:Byte;
bit:Boolean;
begin
...
i:=TBits(j);
bit:=i[1];
end;