Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2016, 15:58   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию Один миллиард бит. Как выгрузить и загрузить?

Здравствуйте!
У меня есть массив из миллиарда элементов типа boolean. Попробовал их записать в типизированный файл по одному - понял, что дохлый номер... Записать 50 миллионов строк получается в разы быстрее... Есть ли какая-то возможность записать этот массив так, чтобы потом получать к элементам массива потом простой и быстрый доступ из других программ?
Ship_1 вне форума Ответить с цитированием
Старый 12.12.2016, 16:30   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Перевести их в байты и хранить массив байтов. Это всего около 120 мегабайт получается если я не напутал. Че тут голову ломать.
А доступ простым расчетом положения байта и сдвигом битов.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 12.12.2016, 16:31   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Файл в гигабайт? Пиши не по одному байту, а достаточно большими блоками, например в мегабайт. Читать FileStream по смещению, это и будет индекс в массиве. 120 мегабайт если 8 булевых засунуть в один байт. Так файл будет в 8 раз короче и чуть сложней расчет смещения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.12.2016, 16:44   #4
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Аватар а не в гигабит?..
Спасибо за направление. Попробую поизучать FileStream, до этого с ними не сталкивался и не работал.
Ship_1 вне форума Ответить с цитированием
Старый 12.12.2016, 17:09   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Я проглядел в заголовке миллиард бит. А в посте речь о типе boolean, он вообще-то в делфи далеко не бит, а 1 байт
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.12.2016, 17:15   #6
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Байт?... Спасибо за инфу, это я как-то подзабыл, и найти подвох вроде как и повода нет: два состояния переменной - чем не бит?..
Тогда точно надо переводить по 8 штук в байты.
Ship_1 вне форума Ответить с цитированием
Старый 12.12.2016, 17:18   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
и найти подвох вроде как и повода нет: два состояния переменной - чем не бит?..
Подвох в том, что адресуются байты, а не биты
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.12.2016, 10:17   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

Вообще-то один Boolean может и 4 байта занимать.
Arigato вне форума Ответить с цитированием
Старый 13.12.2016, 10:28   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

То ж LongBool, а не Boolean
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить в БД (MySQL) один миллиард записей? *stRong* PHP 3 12.06.2016 16:42
Подскажите, пожалуйста, начинающему: Программа из двух кнопок: Загрузить файл в папку с внешнего накопителя и выгрузить AID89 Общие вопросы C/C++ 2 20.04.2016 12:01
Загрузить и выгрузить pdf файл из ado Ernest027 БД в Delphi 23 26.12.2015 18:29
Миллиард записей в бд Predator199 PHP 1 21.11.2012 23:09
как выгрузить сайт в интернет steck Свободное общение 18 22.02.2011 13:47