![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли редактировать INI файл проекта, находясь в этом проекте? [D6, XP]
КлЯкСа © (2006-11-04 12:17:00)Есть проект, который запускается по определенным параметрам, хранящимся в ffl.ini файле. Мне надо, чтоб продвинутые пользователи открыв проект смогли изменить (подредактировать этот файл) на следующий уже заход к примеру, чтоб не надо им было рассказывать, где этот файл лежит. Поскольку мне не приходилось вообще работать с ini файлом, здесь 2 вопроса - реально ли это в принципе осуществить или ситсема уже блокирует файл, когда проект загружен? И второй вопрос - как осуществить этот код без всяких заморочек, чтоб открывался файл по кнопке и при выходе просто был запрос сохранить ли внесенные изменения? (Я нашла в книге как новый файл записать, а как существующий уже обрабатывать - не знаю) Может направите на информацию где это взять или здесь кто приведет кодовый пример, плз.
Заранее спасибо!
Virgo_Style (2006-11-05 09:39:00) [1]КлЯкСа © (05.11.06 9:05) [12]
TMemo не обладает методом LoadFromFile
Ну ошибся я, так надо ж если не книжки читать, то хотя бы обладать способностью к исследованию и чтению справки.
TMemo.Lines.LoadFromFile();
TMemo.Lines.SaveToFile();
Что вы, право...
Ketmar (2006-11-05 09:14:00) [2]>[12] КлЯкСа(c) 5-Nov-2006, 09:05
а-а-а!!! говорящий помидор!!!
КлЯкСа (2006-11-05 09:05:00) [3]To Virgo_Style: я дико извиняюсь, но вот не смогла реализовать в жизнь то, что вы сказали, TMemo не обладает методом LoadFromFile :-(((
Какой компонент я должна использовать в этом случае вместо Memo? Или если я все же совет насчет Мемо годен, то как мне осуществить загрузку текстового файла в мемо кмпонент??
Desdechado (2006-11-04 17:45:00) [4]Я бы не делал редактирование ini напрямую как текста. Я бы сделал формочку, в которой нормальными компонентами можно было что-то настраивать, а программа бы сама перекладывала в INI настройки в том виде, в котором она понимает. Например, галочки командой WriteBool, циферки - WriteInteger и т.п.
Т.е. до кишок INI пользователя пускать нельзя, ему нужно дать возможность настроить с понятными интерфейсными решениями.
Percent (2006-11-04 15:59:00) [5]что если я открываю проект в соответсвии с параментрами
Раз-два-три-четыре-пять... начинаю телепать.
Когда происходит чтение параметров из .ini файла? При старте программы.
Когда происходит запись параметров в .ini файл? При завершении программы.
Надо ли держать .ini файл открытым в течение всего сеанса работы программы? Не надо.
Когда надо открывать файл? В начале работы и в конце работы.
Вопрос: Будет ли файл заблокированным в течение всегосеанса, или только в момент чтения/записи данных, то есть, только в началесеанса работы с программой, и в концесеанса?
КлЯкСа (2006-11-04 15:40:00) [6]Спасибо Virgo_Style, объяснение звучит понятно, буду пробовать :-)
Virgo_Style (2006-11-04 15:31:00) [7]0. Открываем окно-редактор
1. TMemo.LoadFromFile с параметром - именем ini-файла.
2а. если нажата Ok, то TMemo.SaveToFile и закрываем окно
2б. если нажата Отмена, то просто закрываем.
Всего делов.
Прим. к 1.:
Для получения полного пути к каталогу программы - ExtractFilePath( Appliaction.ExeName ) + 'ffl.ini';
Если имя ini совпадает с именем Exe - то ChangeFileExt( Application.ExeName, '.ini');
КлЯкСа (2006-11-04 15:12:00) [8]To Virgo_Style: поскольку я чайник, и только пытаюсь начать работу, так что мои познания очень ограничены пока, а надо срочно решить эту проблему(задачу), так что мне бы поподробнее, плз, какие компоненты и приемы я должна использовать на форме, кроме подсказанной вами Tmemo? чтобы открыть, редактировать открытый в Мемо файл и сохранить введенные сохранения без использования компонента SaveDialog
КлЯкСа (2006-11-04 14:57:00) [9]To Percent: Мой первый вопрос и состоял как раз в том, что если я открываю проект в соответсвии с параментрами ffl.ini файла, то будет ли система его держать блокированным до тех пор, пока открыт этот проект?
КлЯкСа (2006-11-04 14:54:00) [10]To MetalFan_pda: Я перечитала то, что написала, признаю, что произошли некоторые опечатки, ;-) но в общем смысл понятен, если непонятно, переспросите что, я поясню :-)
Percent (2006-11-04 13:08:00) [11]Поскольку мне не приходилось вообще работать с ini файлом, здесь 2 вопроса - реально ли это в принципе осуществить или ситсема уже блокирует файл, когда проект загружен?
"Ситсема" блокирует файл, когда идет обращение к файлу (чтение/зпапись).
Если файл не открыт, то зачем системе его блокировать?
Откуда системе знать, какое отношение имеет твой ffl.ini к твоей пльограмме?
P. S. Какой компонент доступа к файлу?
MetalFan_pda (2006-11-04 12:30:00) [12]где там была ссылка по поводу smart questions?
автор,ты сама то поймешь,если свой вопрос перечитаешь?
Virgo_Style (2006-11-04 12:27:00) [13]КлЯкСа © (04.11.06 12:17)
И второй вопрос - как осуществить этот код без всяких заморочек, чтоб открывался файл по кнопке и при выходе просто был запрос сохранить ли внесенные изменения?
Свой редактор (Форма, TMemo + кнопки отмена и Ok) или запускать, скажем, Блокнот с параметром (если слегка извратиться, можно найти, с какой программой ассоциирован .txt и открыть там - вдруг кто-то удалит из системы Блокнот? =) )
Kolan (2006-11-04 12:19:00) [14]Ниасилил, многабукаф.
Для работы с Ini файлами есть классTIniFile, который находится в модулеIniFiles.
А вот в справке(F1) есть описание как им пользоваться :)