| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > ошибка out of memory |
| Автор: СЭНСЭЙ 31.8.2010, 10:27 | ||
| Пишу код для считывания информации из текстового файла для дальнейшей обработки. Исходный файл - текстовый с раделителями - табуляция.
при попытке прочитать файл в 50 000 строк выдает ошиьбку out of memory. Программа при этом занимает в памяти 400 - 500 мб. количество значений в строке = 52 тип в котором сохраняются считанные значения - real 50000 * 52 * 6 =15 600 000 байт = 15 мб подскажите в чем дело? |
| Автор: CodeMonkey 31.8.2010, 13:09 |
| Эх, посадить бы вас на три года драить палубы писать программы под DOS. Сразу бы вспомнили, что память не бесконечна, даже если система показывает вам, что это так. |
| Автор: СЭНСЭЙ 31.8.2010, 13:35 |
| не пойму как это связано с несоответствием размера массива, и памяти , которую занимает программа. Вас бы на автоответчик посадить. Вы наверное этот ответ пишите в любой теме. Чисто ради рейтинга. Проблема решилась когда я предварительно прочитал количство строк в файле и длинну строки и задал размерность массива перед считыванием файла из данных. Хотя размер массива получился тот же, памяти программа стала занимать гораздо меньше - примерно 36 мб, что приблизительно соответствует тому, что должно быть: 16 мб - рамер данных массива 6-8 мб остальная часть программы указатели динамических массивов - около 1 мб |
| Автор: CodeMonkey 31.8.2010, 13:53 | ||
http://www.transl-gunsmoker.ru/2010/08/1.html, надо бы ответить на вопрос, как работает (к примеру) вот эта строка:
Добавлено через 3 минуты и 34 секунды P.S. Нет, я просто стараюсь заставить вас думать. А рейтинг ставят не за хорошие ответы, а наоборот, за плохие. Вот спросил нуб вопрос, ты ему - код. Это - плохой ответ. Но за него тебе +1. А задал чел реальную проблему, вы с ним долго копались и решили. +1 будет редко. |
| Автор: СЭНСЭЙ 31.8.2010, 14:29 |
| А я просто страюсь заставить вас быть не таким критичным и надменным. |