![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.04.2012
Сообщений: 11
|
![]()
Нужно записать 1 бит информации типа TBits в TStream.
Перекопал кучу инфы в нете. Есть запись чего угодно кроме битов. Кто подскажет как реализовать? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Никак. Минимальная единица записи/чтения - 1 байт. А информации типа TBits нет, это компонент со своими возможностями
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
А в лоб нельзя сделать ? Пишем тупо в каждый байт по 8 битов из bits
Код:
Альтернативный способ писать просто байт на каждый бит, правда в 8 раз файлик увеличится. Последний раз редактировалось phomm; 21.04.2012 в 22:13. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
retroguy, тебе может надо всё же набор битов записать - последовательно, по одному биту?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 13.04.2012
Сообщений: 11
|
![]()
phomm,
С битами в Делфи честно говоря, не очень. Но здесь просто нужно записать свои биты в блоб поле. Думал через потоки решу вопрос. Но удостоверился в том, что Делфи в битами, мягко говоря не очень. За код огромное спасибо. Направление понял. Но вот здесь b := b or (bits[i] shl (i mod 8)); вылетает [Error] ххх.pas(1119): Operator not applicable to this operand type Кста, TFileStream не совсем оно, но конечно, особой разницы не вижу. Последний раз редактировалось retroguy; 24.04.2012 в 12:50. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 13.04.2012
Сообщений: 11
|
![]()
типа того, и положить в блоб
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 13.04.2012
Сообщений: 11
|
![]() |
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 13.04.2012
Сообщений: 11
|
![]()
Итак, конечный рабочий вариант:
Код:
Замечание по поводу исп. TFileStream беру обратно. Сам использовал TMemoryStream, т.к. TStream не годится для записи (вылетает Abtract error). В блоб положил данные из TMemoryStream без проблем (с помощью LoadFromStream). Цитата:
Отдельная благодарность phomm. Красава! Настоящий программист находит пути решения! Возможно не всегда приемлемые. Но рабочие ![]() Последний раз редактировалось retroguy; 25.04.2012 в 10:54. |
|
![]() |
![]() |
![]() |
#9 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
||
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 13.04.2012
Сообщений: 11
|
![]()
Не хотел никого обидеть. Вырвалось. И по поводу вопросов: в чем принципиальная разница в том, чтобы вместо 1-го бита записать 8-мь (или же последовательности бит)? Вы бы повнимательнее прочитали пост человека, что записать можно только количество кратное 8-ми битам. Именно поэтому и был дан ответ не совсем отвечающий строго на мой вопрос. Но принцип один и тот же!
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись данных в БД | Tanzor69 | PHP | 7 | 04.02.2012 17:36 |
Запись данных данных из ListBox в файл | Jrcfyf | C# (си шарп) | 3 | 20.01.2012 15:44 |
получение данных из файла и запись этих данных в другой. | Jurii77 | Microsoft Office Excel | 9 | 23.11.2011 09:42 |
Конвертер бинарных данных | royun | Общие вопросы Delphi | 5 | 30.08.2011 11:50 |
TStream | Владимир1988 | Помощь студентам | 2 | 17.12.2009 10:16 |