|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.01.2023, 20:13 | #1 |
Новичок
Джуниор
Регистрация: 28.01.2023
Сообщений: 3
|
Проблемы с памятью в TStringList
LS := TStringList.Create; //Создал СтрингГрид
LS.LoadFromFile(NF); //Гружу файл в СтрингЛист 6000 или 12000 строк // обрабатываю LS.SaveToFile(NF); //Сохранил в файл 6000 строк LS.Free; //Убил СтрингЛист // после некоторых действий может возникнуть необходимость // добавить ещё 6000 строк, то делаю LS := TStringList.Create; //Создал СтрингГрид LS.LoadFromFile(NF); //Гружу файл в СтрингЛист строк // добавляю 6000 строк LS.SaveToFile(NF); //Сохранил в файл 6000 строк LS.Free; //Убил СтрингЛист //** Но добавить 6000 строк не могу. Только где-то 20% и вылетает ошибка CPU: похоже с памятью |
28.01.2023, 20:22 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
А обязательно с файлами работать именно через TStringList. Может стоит использовать обычные функции работы с текстовыми файлами. Это и память сэкономит.
Уточняющий вопрос. 6000 строк добавляются в произвольные индексы или в конец списка? Если в конец, тогда естественно лучше использовать обычный append. Как вариант, если файл умещается в памяти, то вы можете выделить для него один линейный блок памяти через VirtualAlloc и самостоятельно найти начало всех строк в нем, сохраняя указатели не в TStringList, а в обычный TList. Так вы снизите нагрузку на менеджер динамически распределяемой памяти. Последний раз редактировалось macomics; 28.01.2023 в 20:24. |
29.01.2023, 15:54 | #3 |
Новичок
Джуниор
Регистрация: 28.01.2023
Сообщений: 3
|
macomics, спасибо за ответ.
Через TStringList удобно было работать, раньше было меньше строк и потому проблемы не было, но теперь если проблему не решу, то прийдется менять программу. Везде в инете пишут о гораздо больших строках, потому я и не задумывался об объёме. Да, в конечном итоге в файле текст и запись идет либо файлом, либо добавляются строки в конец файла. Последний раз редактировалось MartG; 29.01.2023 в 15:57. |
30.01.2023, 09:42 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Код:
программа — запись алгоритма на языке понятном транслятору
|
05.02.2023, 17:12 | #5 |
Новичок
Джуниор
Регистрация: 28.01.2023
Сообщений: 3
|
evg_m
Спасибо за подсказку, как определиться с объёмом памяти P.S. Всем спасибо. Вопрос решен. Последний раз редактировалось MartG; 05.02.2023 в 17:16. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отловить проблемы с памятью | Kronos913 | Общие вопросы Delphi | 4 | 01.02.2022 16:37 |
Проблемы с оперативной памятью. | XmasLord | Компьютерное железо | 24 | 11.04.2015 00:38 |
Проблемы с памятью | Firefly | Общие вопросы .NET | 11 | 21.03.2013 11:43 |
Проблемы с памятью в длинной арифметике | Свитозар | Помощь студентам | 1 | 27.10.2012 18:29 |
Проблемы с виртуальной памятью. | DeKot | Операционные системы общие вопросы | 13 | 29.05.2009 11:10 |