|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.07.2013, 14:03 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Delphi. TIniFile без перезаписи
Доброго времени суток!
В одной программе часто надо работать с ini файлами чужого приложения. Моё приложение изменяет 1-2 параметра и все. В файле параметров и секций - ну много короче. Неприятный баг в том, что TiniFile: 1. Стирает комментарии 2. Перезаписывает весь файл, а это удаление всех секций и прочего и остаётся там 2-3 строки: секция куда я писал и пара штук параметров. С первым ещё как-то можно мириться, а второе не приемлемо вообще. Знает ли кто-нибудь решение проблемы? |
12.07.2013, 14:12 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
э... надо смотреть, что это за INI файл. у меня оправданные подозрения, что это НЕСТАНДАРТНЫЙ ini файл.
Поэтому, для работы с ним не стоит использовать СТАНДАРТНЫЕ виндузовые методы. workaround. Попробуйте, например, работать с этим файлом напрямую - как с обычным, текстовым файлом... |
12.07.2013, 14:14 | #3 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
варианты решения:
попробывать TMemIniFile попробывать работать через TStringList (собственно в TMemIniFile так и сделано) попробывать работать как с текстовым файлом |
12.07.2013, 14:30 | #4 | |||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Цитата:
Код:
Цитата:
Цитата:
|
|||
12.07.2013, 14:41 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
12.07.2013, 15:54 | #6 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Бажок проявился - перед комментом дописывается знак равенства Цитата:
I'm learning to live...
|
||
12.07.2013, 20:54 | #7 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Просто используйте всем знакомый Api. Функци: AssignFile(для соеденения приложение и файла), Append(чтение, запись, файл не будет очищатся), Read(чтение строки из файла), Write(запись строки в файл), try finally(финали укажет на конец файла) и, наконец, СloseFile(закрывает файл, или просто рассоеденяет приложение и файл).
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
12.07.2013, 21:18 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
саша40, нафиг это для ини-файла? Только форум засоряете
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
12.07.2013, 21:40 | #9 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
12.07.2013, 21:51 | #10 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
саша40, читать учитесь. Файлы не мои, я их только редактирую.
Цитата:
Ваша комментарии на всем форуме в подавляющем большинстве не несут никакой пользы. To all: Простите что ввел в заблуждение, это где-то я накосячил и файл создавался а не редактировался. И TIniFile и TMemIniFile не стирают ни комментарии ни секции. Последний раз редактировалось Человек_Борща; 12.07.2013 в 22:14. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Просто прочитать файл, без перезаписи | vovken1997 | Общие вопросы Delphi | 4 | 25.01.2013 21:55 |
TMemo и TIniFile | Volkogriz | Общие вопросы Delphi | 11 | 29.12.2012 08:29 |
TStringList и TIniFile | -Jack- | Общие вопросы Delphi | 3 | 16.10.2012 09:56 |
Ошибка перезаписи в файл | sqr | Общие вопросы Delphi | 5 | 15.03.2012 19:36 |
TIniFile | matus | Общие вопросы Delphi | 6 | 21.02.2008 13:59 |