Форум: "Основная";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c