Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2017, 23:16   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию Ошибка Out of memory при загрузке файла в TStringList

Добрый день. Есть следующая ситуация
РС(i7 8Gb Win7 x64 + RAD XE3), приложения можно компилировать только в 32 разр. режиме
- список грузит файл с диска

Код:
Procedure RestorData;
begin
  try
    CS.Enter;
    try
      gStore.LoadFromFile(ExtractFilePath(Application.ExeName)+'Store.txt');
    finally
      CS.Leave;
    end;
  except
    on E:Exception do
    begin
      ShowMessage('RestorDataParams = '+'('+E.Message+')');
    end;
  end;
end;
- при определенных условиях(не всегда) выскакивает ошибка:
First chance exception at $7561C54F. Exception class EOutOfMemory with message 'Out of memory'. Process loader.exe (3736)
в основном ошибка выскакивает при попытке загрузить в список файл размером в 300 мб с числом строк около 3 млн. при запуске программы,
или выгрузить список обратно при выходе из программы.
- список со строками совершенно необходим(стек со списком УРЛ для загрузки), хотя...

Вопросы :
1. вообще эта проблема решаема для TStringList
2. если список не тянет, что еще можно использовать для загрузки-выгрузки милионов строк(до 500 символов в строке) из какого либо хранилища на ЖД
Pcrepair вне форума Ответить с цитированием
Старый 13.12.2017, 23:56   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

TStringStream?
А вообще - с таким размером - лучше БД.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 14.12.2017, 10:52   #3
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию

вообще там несколько списков точнее 5
до 300 мб все списки грузятся в ОЗУ (300+2+8+1)мб
объем памяти растет до 1600 мб, после загрузки падает до 770 мб
но на последнем списке(300 мб) начинается загрузка и тут сбой
Pcrepair вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при загрузке файла (через IdHTTP ) mogo Общие вопросы Delphi 16 15.02.2014 13:58
Out of Memory в делфи при загрузке картинки в BDImage, ае=) ТипичныйСтудент Помощь студентам 3 19.05.2013 22:57
Ошибка при загрузке массива из файла Damik Общие вопросы Delphi 1 14.02.2013 10:46
Ошибка при загрузке XML файла Alter Общие вопросы Delphi 4 25.09.2011 13:58
Ошибка при загрузке файла html Ign Microsoft Office Excel 1 11.11.2007 13:55