Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1149139137
zorik
2006-06-01 09:18
2006.06.18
Как програмно добавить (удалить) язык на языковую панель?


2-1148845528
parovoZZ
2006-05-28 23:45
2006.06.18
Красивое меню (наверное)


4-1142853676
KALqYAN
2006-03-20 14:21
2006.06.18
CPU Usage


3-1145660888
Asail
2006-04-22 03:08
2006.06.18
Групировка в SQL-запросе с суммированием времени...


3-1145542831
Sphinx
2006-04-20 18:20
2006.06.18
Невизуальные компоненты для БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский