![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение в ini [D7, XP]
DimDim © (2009-08-19 18:21:00)350 переменных сохраняет в ini-файл примерно 5 секунд. Это нормально? Как-то хочется побыстрее...
IniKf := TIniFile.Create(NameIniFile);
IniKf.WriteInteger('Glavn', 'XXX', XXX);
....
IniKf.Free;
Переменные разные: Doolean, Float, Integer ...
Компьютер 2,2 ГГц, 1Гб ОЗУ. "Чистый" (без вирусов).
Дмитрий Белькевич (2009-08-22 19:29:00) [1]Вместо постоянной смены структуры сделать поле Text BLOB, в стрнглист помещать пары Parameter=Value, text в стринглист при старте читать из BLOB'а, при оставке - запихивать в блоб. Параметров можно сделать хоть мульён ничего мянятся и тормозить не будет, и инишка не нужна.
Плохиш (2009-08-20 16:02:00) [2]
> DimDim (19.08.09 18:51) [6]
>
> Грешно глумиться над убогим...
> Сметная программа. На наждую смету мильон настроек. До этого
> сохранял в таблице базы данных. Но это очень муторно если
> надо еще что нибудь добавить - приходится менять структуру
> таблиц
Зачем?
> Kolan © (19.08.09 23:15) [13]
>
> Надо было таблицу в базе делать из двух полей: Key и Value
> оба текстового типа.
+ idSmeta - integer ;-)
DimDim (2009-08-20 14:54:00) [3]Спасибо всем. Через TMemIniFile работает на ура.
Про xml плюс xpath думал, но нет времени на изучение формата...
Kolan (2009-08-19 23:15:00) [4]Надо было таблицу в базе делать из двух полей:
KeyиValueоба текстового типа.
Loginov Dmitry (2009-08-19 22:43:00) [5]> 350 переменных сохраняет в ini-файл примерно 5 секунд. Это
> нормально? Как-то хочется побыстрее...
Антивирь скорее всего тормозит. Выключи его, или добавь
iniшку в игнор-лист.
Anatoly Podgoretsky (2009-08-19 20:48:00) [6]> DimDim (19.08.2009 18:51:06) [6]
База нужна, только боюсь, что ты там больше делов натворишь, есть где размахнуться.
antonn (2009-08-19 19:31:00) [7]
> DimDim (19.08.09 18:21)
>
> 350 переменных сохраняет в ini-файл примерно 5 секунд. Это
> нормально?
ну вероятно при каждом сохранении он читает файл заново и ищет нет ли в нем уже созданой секции и ключа :)
Если нужно сохранить значения в уже созданый файл (и в котором могут быть незатрагиваемые ключи), то попробуй TMemIniFile
Если в файле только эти 350 переменных - формируй ручками структуру ini в TStrings и потом сохраняй его в файл
Leonid Troyanovsky (2009-08-19 18:59:00) [8]
> Palladin © (19.08.09 18:43) [5]
А чего, если понравился - то сразу из Челябинска?
Оный тип широко известен еще со времен доса,
хотя его формат иногда и скрывают
(скажем, в кармане, может кто и помнит такое :)
--
Regards, LVT.
Медвежонок Пятачок (2009-08-19 18:58:00) [9]Но это очень муторно если надо еще что нибудь добавить - приходится менять структуру таблиц, следить за значениями по умолчанию
xml плюс xpath минус куча кода чтения/записи каждой переменной отдельно.
Медвежонок Пятачок (2009-08-19 18:52:00) [10]посторочная трассировка + геттиккаунт подскажут правду на чем именно тратится время
DimDim (2009-08-19 18:51:00) [11]Грешно глумиться над убогим...
Сметная программа. На наждую смету мильон настроек. До этого сохранял в таблице базы данных. Но это очень муторно если надо еще что нибудь добавить - приходится менять структуру таблиц, следить за значениями по умолчанию. Причем это должно проверяться и происходить у заказчиков автоматически при обновлении программы, т.к. их много (около 500 раб. мест - за каждым не уследишь).
Решил переделать - сохранять настройки в ini-файл, а его переписывать как текст в Memo поле базы. Также и открывать - переписать из Memo в ini, а из ini читать в программу. Так ведь такими темпами только процедура перезаписи наработанной базы в новый вариант пол дня займет.
Palladin (2009-08-19 18:43:00) [12]А мне тип Doolean понравился :) Поди из Челябинска родом ))
vip77 (2009-08-19 18:35:00) [13]
> 350 переменных
ужос!!!
Медвежонок Пятачок (2009-08-19 18:35:00) [14]тоже верно. гостом допускается только 349 переменных
Медвежонок Пятачок (2009-08-19 18:32:00) [15]Это потому, что переменная названа неправильно - "NameIniFile"
Надо "IniFileName". Будет реально быстрее.
Palladin (2009-08-19 18:22:00) [16]что же сподвигло тебя на сий подвиг?