Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.12.14;
Скачать: CL | DM;

Вниз

запись параметров в ini файл   Найти похожие ветки 

 
SKIPtr ©   (2013-11-27 23:33) [0]

драсте подскажите как лучше поступить
я записываю параметры в ini файл
насколько я понял фактическая запись в файл происходит при команде IniFile.Free
если я буду закрывать програму то в событии FormClose я выполню IniFile.Free
но прога может отправить комп в спящий режим
хотелось чтоб перед уходом в сон в файле сохранились параметры
как это лучше выполнить


 
Jeer ©   (2013-11-28 00:42) [1]

Изучить справку по TIniFile и метод *.UpdateFile - не судьба?


 
Dimka Maslov ©   (2013-11-28 10:29) [2]

Если пользоваться функцией WritePrivateProfileString, то фактическая запись гарантированно произойдёт сразу же.


 
Ega23 ©   (2013-11-28 11:39) [3]

Параметры надо сохранять по факту их изменения, а не при выходе.

Представь, что у тебя 100 параметров. ты их все изменил, собрался выходить, но у тебя на выходе ошибка какая-то случилась. И ничего не сохранилось.


 
[ВладОшин] ©   (2013-11-28 12:00) [4]

что тут думать, надо вызвать явно

> *.UpdateFile


А то что оно при уничтожении только..
А как еще Ini использовать?Зачем его открытом держать?

Родил, прочитал, убил.
или  
Родил, записал, убил

Стартанул/юзер захотел переинициализировать -
Родил, прочитал, убил.

юзер захотел сохранится -
Родил, записал, убил


 
Плохиш ©   (2013-11-28 12:09) [5]


> насколько я понял фактическая запись в файл происходит при
> команде IniFile.Free

Неправильно понял.


 
icWasya ©   (2013-11-28 12:42) [6]

> насколько я понял фактическая запись в файл происходит при
> команде IniFile.Free

Неправильно понял.
Если посмотреть сорцы, то увидите, что TIniFile.WriteString напрямую вызывает WritePrivateProfileString, и фактическая запись гарантированно произойдёт сразу же. А все остальные функции WriteЧеготоТам - просто преобразуют параметр в строку и потом всё равно сразу пишут её в файл.


 
Rouse_ ©   (2013-11-28 13:22) [7]


> Ega23 ©   (28.11.13 11:39) [3]
> Параметры надо сохранять по факту их изменения, а не при
> выходе.

Смотря какие параметры, тебе Макс сразу по голове настучит, если ты в настройки ширину колонки будешь писать сразу в процессе того как пользователь меняет ее ширину мышкой.
Писать параметры тоже надо правильно ;)


 
Ega23 ©   (2013-11-28 13:35) [8]


> Смотря какие параметры

Тут просто нужно отловить факт окончания изменения ширины. В процессе-то да, писать не надо.


 
Германн ©   (2013-11-28 13:38) [9]


> Ega23 ©   (28.11.13 13:35) [8]
>
>
> > Смотря какие параметры
>
> Тут просто нужно отловить факт окончания изменения ширины.
>

Не нужно. Запись такого рода параметров либо по выходу из программы, либо по спецкнопке. Имхо.


 
Inovet ©   (2013-11-28 13:47) [10]

> [9] Германн ©   (28.11.13 13:38)
> по выходу из программы

Поубивал бы. Иногда достают такие заботливые программы.

> [9] Германн ©   (28.11.13 13:38)
> по спецкнопке

так лучше.


 
Германн ©   (2013-11-28 13:55) [11]


> Inovet ©   (28.11.13 13:47) [10]
>
> > [9] Германн ©   (28.11.13 13:38)
> > по выходу из программы
>
> Поубивал бы. Иногда достают такие заботливые программы.

Так то ж иногда. А в других случаях вполне.


 
sniknik ©   (2013-11-28 14:42) [12]

> Поубивал бы. Иногда достают такие заботливые программы.
если они действительно такие заботливые то само "сохранение по выходу" должно быть настройкой.

>> по спецкнопке
> так лучше.
ага, представляю, в программе куча гридов, иногда (у "внутрикомпанийских" бывает) по нескольку на форме, места не хватает, и у каждого грида заботливо расставлены "спецкнопки". :)

> Так то ж иногда. А в других случаях вполне.
а в других случаях, наоборот!... достают потому, что не сохраняют. все зависит от того, что юзер именно сейчас, в данный момент хочет ;).


 
Inovet ©   (2013-11-28 15:01) [13]

Ну так правильно. Должно быть отключаемым автоматическое, и должно быть ручное сохранения. На каждый грид перебор, а где-то иметь кнопку или пункт меню нормально, типа "Вид"-"Сохранить". Можно "Восстановить" там же из ранее сохранённых, если надо такое. Но когда тупо сохраняется всё само - нафиг. Тогда "Восстановить по-умолчанию" надо где-нибудь, хотя бы в настройках.


 
Ega23 ©   (2013-11-28 15:15) [14]


> На каждый грид перебор


По-хорошему, не "перебор", а иметь возможность настроить ширину, цвет, фонт и порядок колонок в КАЖДОМ гриде (а ещё и скрывать ненужные, но это не всегда). И обязательная операция "Вернуть настройки по-умолчанию".


 
Inovet ©   (2013-11-28 15:47) [15]

> [14] Ega23 ©   (28.11.13 15:15)

Я вслед за sniknik о заботливо расставленных возле каждого грида кнопках. Общая на форму кнопка и/или пункт меню нормально.

Где-нибудь в общем предке всех таких форм и сделать, пусть ищет гриды и сохраняет/восстанавливает.


 
Inovet ©   (2013-11-28 15:58) [16]

Я вот не пойму - почему перед уходом в сон должно что-то сохраняться. Это я отошёл от компа выпить чаю, захотелось вторую чашку, при хожу - комп в спячке, ну и хорошо, надо экономить ресурсы. Нажимаю кнопку на клавиатуре, сажусь дальше что-то делать, а у меня, оказывается, предыдущая версия перетёрта новым содержимым, а я-то и не догадываюсь, думаю - восстановлю в любой момент. Вот наступил момент - что-то накосячил, начинаю восстанвливать, а там хрен знает что. Дальше понятно.


 
Ega23 ©   (2013-11-28 16:05) [17]


> Я вслед за sniknik о заботливо расставленных возле каждого
> грида кнопках.


ЗАЧЕМ?????
1. Одна кнопка на риббоне "Настроить параметры отображения"
2. Одна форма настройки.
3. Один xml с секцией гридов (для каждого грида хранятся 2 настройки: "заводская" и "пользовательская").

Это при условии, что все гриды - одного класса.


 
Inovet ©   (2013-11-28 16:06) [18]

> [17] Ega23 ©   (28.11.13 16:05)

Ну так и я о том же.


 
Германн ©   (2013-11-28 20:57) [19]

Все зависит от того, что юзер именно сейчас, в данный момент хочет
(с) sniknik ©


 
SKIPtr ©   (2013-11-28 23:16) [20]


> Все зависит от того, что юзер именно сейчас, в данный момент
> хочет

правильное вычказывание
спасибо теперь решить чем воспользоваться
может быть ситуация я сохранил параметр командой например
IniFile.WriteIntegerи и могу быть уверен что параметры сохранились
если сохраню этой командой а после произойдет например аварийное отключение электричества


 
Inovet ©   (2013-11-29 07:00) [21]

> [20] SKIPtr ©   (28.11.13 23:16)
> а после произойдет например аварийное отключение электричества

Не о том ты думаешь. Например, после аварийного отключения может быть всё, что угодно. И как это связано с записью перед режимом спячки? Теперь есть Гибридный режим. Тогда сохранять каждый 10 минут в отдельный раздел или под другими именами AutoSaved, при запуске после сбоя восстанавливать.


 
SKIPtr ©   (2013-11-29 10:44) [22]

я о том
что я например успел сохраниить командой WriteInteger и произошло выключение
как в этой ситуации нормально ли все сохранено
и еще у меня есть подозрение что
когда в спящем режиме комп теряет напряжение мало шансов что он сможет проснуться


 
Inovet ©   (2013-11-29 11:00) [23]

> [22] SKIPtr ©   (29.11.13 10:44)
> мало шансов что он сможет проснуться


> [21] Inovet ©   (29.11.13 07:00)
> Теперь есть Гибридный режим


 
Ega23 ©   (2013-11-29 11:17) [24]


> и могу быть уверен что параметры сохранились


Изменился параметр -> Открыл ini, записал новое значение, закрыл ini.
Ты же не каждую секунду это делаешь.


 
SKIPtr ©   (2013-11-29 12:06) [25]


> Открыл ini, записал новое значение, закрыл ini.

так я это и хочу мой вопрос в том какой командой сделать гарантированую запись
а то в винде бывает что каманда уходит в буфер и ждет пока буфер не заполниться


 
sniknik ©   (2013-11-29 12:32) [26]

> гарантированую запись
насколько важна сохраняемая инфа? если не запишется последствия? - расстрел?

> а то в винде бывает что каманда уходит в буфер и ждет пока буфер не заполниться
при закрытии файла буфер сбрасывается. правда есть еще кэш винды, и кэш диска... т.что 100% гарантии нет.


 
Inovet ©   (2013-11-29 12:36) [27]

> [25] SKIPtr ©   (29.11.13 12:06)

Закрытие файла сделает запись, а уж общий дисковый кэш Виндоус сбросит в скором времени. Для защиты от сбоев применят другие средства.


 
Inovet ©   (2013-11-29 12:40) [28]

А если во время записи или между записью и последуущим чтением откажет диск или в ячейку памяти влетит космическая частица?


 
брат Птибурдукова   (2013-11-29 12:44) [29]

какой командой сделать гарантированую запись если сдох дисковый контроллер?


 
Германн ©   (2013-11-29 13:00) [30]

Единственно гарантированный инструмент для записи - карандаш! Советские космонавты рекомендуют :)


 
sniknik ©   (2013-11-29 13:10) [31]

> карандаш
ну да конечно, пока первую половину нужного писал вторую забыл... и где тут гарантия?


 
SKIPtr ©   (2013-11-29 13:24) [32]

так я не беру во внимание выход из строя компа
я говорю о защите от пропадания электричества
не смотря на готовность к олимпиаде проблемы с электричеством продолжаються


 
Ega23 ©   (2013-11-29 13:26) [33]


>  Советские космонавты рекомендуют :)


Советские космонавты не писали карандашом, это байка. От карандаша летят маленькие осколки грифеля, что в условиях невесомости становится опасно.


>  какой командой сделать гарантированую запись


Если твоя задача стоит, как ГАРАНТИРОВАННАЯ запись чего-то куда-то, то для этого есть масса других способов, ini тут не айс.
Но, сдаётся мне, занимаешься ты какой-то хренью.


 
брат Птибурдукова   (2013-11-29 13:26) [34]


> Советские космонавты рекомендуют
Это только пока графитной пыли в лёгких скопилось немного.

Хотя, конечно, при наличии ускорения свободного падения 9.81 м/с/с (а я сейчас пребываю именно в таких условиях) об этом можно особо не беспокоиться.


 
Ega23 ©   (2013-11-29 13:27) [35]


> я говорю о защите от пропадания электричества

Какая половая разница, сгорел комп, или его от ИБП отключили?


 
Inovet ©   (2013-11-29 13:29) [36]

> [34] брат Птибурдукова   (29.11.13 13:26)
> Это только пока графитной пыли в лёгких скопилось немного.

В лёгких ладно, а в аппаратуре.


 
Inovet ©   (2013-11-29 13:30) [37]

> [35] Ega23 ©   (29.11.13 13:27)
> Какая половая разница, сгорел комп, или его от ИБП отключили?

Ну как, сгорел - новый надо покупать, от питания оключили - звонить в электросети.


 
sniknik ©   (2013-11-29 13:31) [38]

защита от "пропадания электричества" - UPS.


 
Ega23 ©   (2013-11-29 13:45) [39]


> В лёгких ладно, а в аппаратуре.

В лёгких "ладно"? А ежели ты как Муса Манаров год на орбите валандаешься?


 
Ega23 ©   (2013-11-29 13:47) [40]


> защита от "пропадания электричества" - UPS.


От UPS-а к БП тоже кабель идёт, если чё. Который тоже могут "зимой перегрызть собаки, а охотник у нас в запое" (реальная цитата с реального объекта, там контроллер на периметре отваливался постоянно)


 
SKIPtr ©   (2013-11-29 14:08) [41]


> защита от "пропадания электричества" - UPS.

но мой первоначальный вопрос
какой командой ini файл записать
чтоб исключить запсь в буфер


 
Inovet ©   (2013-11-29 14:10) [42]

> [39] Ega23 ©   (29.11.13 13:45)
> В лёгких "ладно"?

Графит от карандаша? Да ну, тогда в школах надо запретить. Впрочем, думается мне, что аппаратура там достаточно защищена, а в атмосфере станции всякого дерьма много плавает.


 
Inovet ©   (2013-11-29 14:11) [43]

> [41] SKIPtr ©   (29.11.13 14:08)
> какой командой ini файл записать

100500 раз ответили уже.


 
SKIPtr ©   (2013-11-29 14:17) [44]


> 100500 раз ответили уже.

так ответов было много и ответы все разные
вот и думаю какой вариант лучше на чем остановиться


 
брат Птибурдукова   (2013-11-29 14:17) [45]


> Да ну, тогда в школах надо запретить
В школах, как правило, ускорение свободного падения достаточно велико, чтобы пылью можно было пренебречь ;-)


 
Ega23 ©   (2013-11-29 14:21) [46]


> но мой первоначальный вопрос
> какой командой ini файл записать
> чтоб исключить запсь в буфер


Тебе ответили уже: никак. Гарантий - нет.


 
Германн ©   (2013-11-29 14:41) [47]


>  Ega23 ©   (29.11.13 13:26) [33]
>
>
> >  Советские космонавты рекомендуют :)
>
>
> Советские космонавты не писали карандашом, это байка.

А где я говорил что они писали карандашом? Я говорил они рекомендуют. :)


 
Inovet ©   (2013-11-29 14:46) [48]

> [45] брат Птибурдукова   (29.11.13 14:17)
> В школах, как правило, ускорение свободного падения достаточно
> велико, чтобы пылью можно было пренебречь ;-)

Для пыли-то велико? Не, ну если на Луне где-нибудь под окрытым эээ небом класс расположен.


 
Ega23 ©   (2013-11-29 14:57) [49]


>  Я говорил они рекомендуют. :)


Это не они рекомендуют, это Задорнов рекомендует. Сатирик, юморист, долбослав и алканафт.


 
Германн ©   (2013-11-29 14:58) [50]


> чтобы пылью можно было пренебречь

   Айзек Азимов. Ловушка для простаков
http://lib.ru/FOUNDATION/suckbait.txt


 
SKIPtr ©   (2013-11-29 20:07) [51]


> Тебе ответили уже: никак. Гарантий - нет.

ну теперь остаеться только посмотреть практически что будет


 
Ega23 ©   (2013-11-29 20:20) [52]

Проверяй, чё.



Страницы: 1 2 вся ветка

Текущий архив: 2014.12.14;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.01 c
6-1270567992
Zoom
2010-04-06 19:33
2014.12.14
Indy 9 IdTCPServer, как узнать IP адрес клиента ?


15-1399721808
Дмитрий СС
2014-05-10 15:36
2014.12.14
Сделать из ноута bluetooth/usb клавиатуру.


15-1400013003
Юрий
2014-05-14 00:30
2014.12.14
С днем рождения ! 14 мая 2014 среда


15-1397669855
Rouse_
2014-04-16 21:37
2014.12.14
Задачка для разминки мозга


2-1385580807
SKIPtr
2013-11-27 23:33
2014.12.14
запись параметров в ini файл