Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

Out of memory   Найти похожие ветки 

 
pirate ©   (2006-05-06 16:36) [0]

Здраствуйте, уважаемые!
Суть проблемы такова:
есть типы:


type TWord=record
wrd:shortString;
descr:AnsiString
end;

type TDict=record
count:longint;
words:array of TWord;
end;

var Dahl:TDict;

.......
в цикле происходит следующее:
Dahl.count:=Dahl.count+1;
         SetLength(Dahl.words,Dahl.count);
         Dahl.words[Dahl.count-1].wrd:=s2;
         Dahl.words[Dahl.count-1].descr:=s3;

.......

Что я хотел сделать:
Я хотел загрузить толковый словарь Даля в переменную Dahl из файла, представляющую собой динамический массив.

.wrd - это само слово
.descr - это его смысловое значение (следует отметить, весьма объемное, иногда достигает ~500 байт)

По обработке ~8400 слов выдается "Access denied...***###$%...Out of memory...&%**&(("

Вот так вот.


 
Сергей М. ©   (2006-05-06 16:40) [1]


> хотел загрузить толковый словарь Даля


Серьезная заява)

А нафига ?
Можно поинтересоваться ?
Далев "словобукварь" - серьезное и весьма информационноемкое творение. вряд ли оно уместится в  два далеко не полных Гб, отведенных для твоего программного творчества под Win32 ..


 
han_malign ©   (2006-05-06 16:58) [2]

убери shortString - поднимешь количество раза в 2/3, за счет уменьшения фрагментации...

Но, самое простое, с минимальной фрагментацией - загрузить файл целиком в память(если влезет), проставить #0 в конце "Статей", и заполнить массив PChar-ов (размер которого узнали на этапе проставления нулей)(если хватило места под него) указателями на начало "Слов"... Слова от Статей отделять динамически(для уменьшения использования памяти)...

А лучше, все таки, заполнить массив "Слов" и смещений соответствующей "Статьи" в файле, и подчитывать статью динамически(500 мс максимум - если винчестер подыхает)...


 
pirate ©   (2006-05-06 17:09) [3]


> вряд ли оно уместится

16.5 MB в текстовом файле.. Вот оно как.

> заполнить массив "Слов" и смещений соответствующей "Статьи"
> в файле, и подчитывать статью динамически

- а это ты тему подсказал! Решение достойное профессионала!
Спасибо!


 
han_malign ©   (2006-05-06 17:09) [4]


> Далев "словобукварь" - серьезное и весьма информационноемкое творение.

http://lib.km.ru/?id=2871
~18Мб
- не вопрос


 
TUser ©   (2006-05-08 12:15) [5]

Все равно в памяти это хранить не нужно.



Страницы: 1 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.055 c
3-1145635197
DevilDevil
2006-04-21 19:59
2006.06.18
Удаление нескольких записей


15-1148348413
rihtich
2006-05-23 05:40
2006.06.18
ASM и DELPHI


15-1148499456
Nic
2006-05-24 23:37
2006.06.18
Кто-нибудь делал электронные книги в Math Cad e?


2-1149058692
Zhekson
2006-05-31 10:58
2006.06.18
почему ValInt := StrToInt( 1 ); выдаёт EConvertError


2-1148988774
Revan
2006-05-30 15:32
2006.06.18
А я так и не сделал настройку звука...