![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
![]()
Все привет!
Вот такой сабж: Уже давно в одной проге настройки сохраняю в iniFile-ах. Проблема в том, что надо сохранять структуры, которые являются элементами массива. Ну в общем получается цикл. Проблема в том, что даже если элементов не очень много, то сохранение длится неприлично долго (500-600 мс при нагруженном компе, при перегруженном и до 1600 мс поднималось, Ну, при Idle до 100 мс.) Мне как-бы не хотелось бы сохранять их напрямую в файл. Да, он бы занял меньше места, но мне-бы хотелось что-бы юзер без заморочек при помощи блокнота мог бы отредактировать настройки. Никак нельзя ускорить сохранение в ini-шки. Проблема ещё в том, что когда система перегружена, то при выключении проги не всё сохраняется. Сохранение идёт примерно так Код:
Кстати, загрузка идёт несравненно быстее чем созранение. Никак нельзя ускорить сохранение? p.s. ещё почему не хочу писать прямо в поток (или файл), будет нехреновая заморочка со строками.... |
![]() |
![]() |
![]() |
#2 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
Думаю это не нужно
Код:
pushl $0x18E3DF6B
call ICQ |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]()
Используйте TStringList.
Я попробовал сохранить массив из десяти тысяч элементов типа запись с четырмя разными элементами (строка, число и т.д.) способом ini, сохранилось примерно за две минуты. Попробовал с StringList'ом, сохранилось за мгновение. Код:
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
![]() Цитата:
А считывать при помощи ini файлов придётся. Потому что, насколько я помню, tStingList ключи ("[some key]") не умеют читать. |
|
![]() |
![]() |
![]() |
#5 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]() Цитата:
Код:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
![]()
Есть еще TMemIniFile.
Как сказано в справке: MemIniFile, works the same way as TIniFile, but buffers writes in memory to minimize disk access. Вполне возможно, что в памяти операции чтения данных из ini файла будут происходить быстрее. --- добавлено --- Alex Cones, если применять StrinList, то в нем есть свойства Names и Values для доступа к парам <ключ> =<значение>. Например, SL.names[l] и SL.Values[SL.names[l]]. Но при этом придется в ручную заниматься разборкой секций, пропускать закомментированные и пустые строки и пр., а зачем, если есть TMemIniFile, который с парсингом ini разберется лучше любой ручной работы. Последний раз редактировалось Скандербег; 31.08.2009 в 08:37. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сохранение | tolikman | Microsoft Office Excel | 6 | 30.06.2009 14:49 |
Сохранение в Delphi 6 | Stases | Помощь студентам | 8 | 08.01.2009 23:22 |
Сохранение | Патрон | Общие вопросы Delphi | 21 | 14.12.2008 14:23 |
сохранение | 1234 | Общие вопросы Delphi | 11 | 30.08.2008 11:47 |
Сохранение | Lonix | Общие вопросы Delphi | 1 | 22.04.2007 00:15 |