![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 18.01.2010
Сообщений: 7
|
![]()
Добрый день всем! Собственно описание проблемы:
есть класс MyClass, состоящий из 9 полей следующих типов: boolean; integer; integer; boolean; boolean; boolean; boolean; integer; boolean. Необходимо создать массив (желательно динамический) типа array of MyClass, который будет содержать 100000000-200000000 записей. Стандартными путями он создается, но при заполнении массива где то на 49000000 элементе выскакивает ошибка нехватки памяти. Процесс при этом занимает около 2 гигов. Что можно сделать в данной ситуации? Заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Если не секрет зачем такой огромный массив?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 18.01.2010
Сообщений: 7
|
![]()
не секрет, для дисера
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
работайте значит не с памятью, а с файловым потоком...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 18.01.2010
Сообщений: 7
|
![]()
а можно поконкретнее, как сделать чтобы массив не с памятью работал. и потом, скорость работы с ним будет уже совсем другая правильно? можно ли сделать чтобы он сколько мог брал оперативки, а остальное - с винта?
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]()
Попробуй создать файл подкачки и работать с ним, как с памятью. Ниже пример кода, для создания такого файла:
Код:
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 18.01.2010
Сообщений: 7
|
![]()
извиняюсь за глупый вопрос, чтобы работать с памятью я просто могу написать setlength(mas,100000000) или мне нужно указать еще что-то?
|
![]() |
![]() |
![]() |
#8 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Даже для докторской такие огромные массивы не выделяют. Зачем такой огромный массив? Цитата:
Насчет файлов мысль светлая. Скорость работы с массивом записанным в файл не будет сильно занижена, если ты не будешь использовать медленные алгоритмы обработки. Например будет удобно использовать TFileStream. Он дает приличную скорость работы. Цитата:
I'm learning to live...
|
|||
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 18.01.2010
Сообщений: 7
|
![]()
такой вопрос можно ли не меняя самого кода перевести все на работу с файлами, то есть у меня задан динамический массив a: array of myclass далее я ему делаю setlength. можно как то не править весь код?
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]()
Динамические массивы тут не прокатят. Тебе нужно объявить такие типы:
Код:
Код:
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как создать многомерный динамический массив в Delphi? | Velross | Помощь студентам | 3 | 06.01.2010 20:50 |
как создать массив | lg12 | Помощь студентам | 4 | 17.08.2009 13:50 |
Как создать массив-константу из записей | SNUPY | Общие вопросы Delphi | 3 | 19.03.2009 21:11 |
Как создать массив заполняемый с клавиатуры? | Bravo | Общие вопросы C/C++ | 2 | 14.11.2008 00:23 |
Подскажите, как создать динамический массив? | snaem | Общие вопросы .NET | 9 | 14.05.2008 08:52 |