![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
psyco |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 6.12.2008 Репутация: нет Всего: нет |
Здравствуйте! Мне необходимо осуществить запись данных в файл с размером каждого символа в 1 бит: простой набор 0 и 1. Пытался реализовать свой тип данных для файла, но как оказалось минимальный размер это 1 байт. Записывал данные в бинарные файлы, но и в этом случае каждый символ занимал размер в 1 байт. Так же пытался использовать динамическую память, но никак.
Подскажите, пожалуйста, возможно ли записывать данные в файл с учетом того, что каждый символ занимает 1 бит? Возможно ли создать такой тип данных? Буду очень благодарен за ваши ответы, и за идеи! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Просто записывать в файл данные когда наберется не меньше 8ми бит. Пока не набралось держать биты в байте. Как набрался байт, так скидывать его в файл. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
psyco |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 6.12.2008 Репутация: нет Всего: нет |
Простите, но я не совсем понимаю. При записи в файл, любой символ занимает 1 байт, при этом я не могу создать переменной размером 1 бит для записи и т.д. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
При записи в файл любой блок может быть не менее одного байта, а символ может занимать сколько угодно. Вот например битмапка в черно-белом формате хранит в одном блоке размером в байт 8 пикселов. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
psyco |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 6.12.2008 Репутация: нет Всего: нет |
Это в бинарных файлах? Я так понимаю Вы имеете в виду функцию BlockWrite для записи блока, да? А тип данных параметра переменной, которую мы записываем не имеет значения?BlockWrite(MyFile,Text,Size); |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
struct S
{ int a0 : 1; int a1 : 1; int a2 : 1; int a3 : 1; int a4 : 1; int a5 : 1; int a6 : 1; int a7 : 1; }; Вот тебе 8 бит, распорядись ими достойно. Добавлено через 42 секунды Только вот как в Delphi это представить - не знаю -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Alexeis |
|
||||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
На самом деле, я писал безотносительно метода доступа к файлу. Ведь файлы на диске не бывают текстовыми или бинарными. Текстовый файл это лишь механизм для упрощения доступа к данным. Очевидно, что для нестандартного символа потребуется нестандартная работа с файлом. Т.е. работа с байтами. Например установить 7й бит в 1 (начиная с нуля)
Сбросить этот же бит в 0
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||||
|
|||||||
psyco |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 6.12.2008 Репутация: нет Всего: нет |
Alexeis, спасибо большое, Вот окончательный алгоритм - я создал переменную типа byte, т.е она содержит 8 бит. С помощью сдвига значения на некоторое число бит(формирование в 8 битах 0 и 1) я создаю свои 8 бит. Записываю эту переменную-байт в файл, где она занимает один байт, как раз то что надо! Спасибо
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |