Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.12.14;
Скачать: [xml.tar.bz2];

Вниз

запись параметров в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.004 c
15-1400002027
Kerk
2014-05-13 21:27
2014.12.14
Вызов Free внутри класса


6-1274251810
Dmitriy
2010-05-19 10:50
2014.12.14
контроль (учет) трафика WinInet


15-1399824452
Антоха
2014-05-11 20:07
2014.12.14
Прога для онлайн-магазина


1-1328811083
istok20
2012-02-09 22:11
2014.12.14
динамический листвью..


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский