Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Сохранение в файл

Ответить
Настройки темы
Delphi - [решено] Сохранение в файл

Пользователь


Сообщения: 108
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Делал так, файл не перезаписывался, хотя имхо должен:
Код: Выделить весь код
if SaveDialog.Execute then
  if FileExists(SaveDialog.FileName) then
    begin
      if (MessageDlg('Файл уже существует.' + #13#10 + 'Переписать?', mtConfirmation, mbOkCancel, 0) <> mrOk)
      then Exit;
    end
    else
      IniFile.IniOptions.SaveToFile(SaveDialog.FileName);
Вставил ветку else и туда написал IniFile.IniOptions.SaveToFile(SaveDialog.FileName); и все работает, но почему в начальном варианте не работает? ведь в любом случае последняя строка должна выполняться в любом случае... или я туплю.

Отправлено: 15:35, 11-02-2013

 

Пользователь


Сообщения: 108
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата opel431:
Ну да...., не проще ли, блок if not (FileExists(..))..., а в нем if SaveDialog.Execute... »
Это как? сначала FileExist, а потом уже SaveDialog.Execute?
И что это за бред? Сначала проверка на существование файла(какого непонятно), а потом уже проверка выполнения SaveDialog?

Отправлено: 06:37, 13-02-2013 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата novashdima:
И что это за бред? »
Бред, это когда мы заранее не определяем - что хотим, и как хотим.

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Отправлено: 08:44, 13-02-2013 | #12


Пользователь


Сообщения: 108
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата opel431:
Бред, это когда мы заранее не определяем - что хотим, и как хотим. »
Может я вас неправильно понял, объясните свою идею лучше, или код приведите

Отправлено: 17:15, 13-02-2013 | #13


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата novashdima:
Может я вас неправильно понял, объясните свою идею лучше, или код приведите »
Не знаю..., может и неправильно, просто думаю, что изобретать велосипед не к чему.

1. SaveDialog имеет свойства, среди которых имеется OfOverwritePrompt. Установка его в true (в компоненте) или программно (SaveDialog.Options := SaveDialog.Options + [ofOverwritePrompt]) вызывает стандартный диалог ("Файл уже существует. Заменить его?").
2. Файлы связанные с программой, при сохранении не нужно "тыкать" куда вздумается (или в папке с программой, или в папке "Пользователя" (что особенно актуально для работы в Windows 7 >), как и принуждать, каждый раз делать выбор (лучше предусмотреть выбор - "По умолчанию", или "Сохранить как..."). Свойств InitialDir и/или FileName для этого вполне хватает.
3. Проверять существование файла и выводить свой диалог, необходимо или при сохранении по умолчанию - без вызова SaveDialog, или при открытии файла.

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 13-02-2013 в 21:53.


Отправлено: 21:45, 13-02-2013 | #14


Пользователь


Сообщения: 108
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата opel431:
1. SaveDialog имеет свойства, среди которых имеется OfOverwritePrompt. Установка его в true (в компоненте) или программно (SaveDialog.Options := SaveDialog.Options + [ofOverwritePrompt]) вызывает стандартный диалог ("Файл уже существует. Заменить его?"). »
Спасибо, не знал, надо будет почаще проверять опции.
Цитата opel431:
2. Файлы связанные с программой, при сохранении не нужно "тыкать" куда вздумается (или в папке с программой, или в папке "Пользователя" (что особенно актуально для работы в Windows 7 >), как и принуждать, каждый раз делать выбор (лучше предусмотреть выбор - "По умолчанию", или "Сохранить как..."). Свойств InitialDir и/или FileName для этого вполне хватает. »
По умолчанию при вызове диалогового окна предлагается сохранить в папке с программой.
Цитата opel431:
3. Проверять существование файла и выводить свой диалог, необходимо или при сохранении по умолчанию - без вызова SaveDialog, или при открытии файла. »
Так и делаю, поэтому по привычке стал и в SaveDialog писать проверку на существование файла.

Отправлено: 01:04, 14-02-2013 | #15


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата novashdima:
По умолчанию при вызове диалогового окна предлагается сохранить в папке с программой. »
Зачем? Вызов SaveDialog - это уже не по умолчанию, а выбор.
Добавьте переключатель (CheckBox) и обрабатывайте - или сохранение по умолчанию (с проверкой существования файла и запроса на его перезапись), или свобода выбора для пользователя - вызов SaveDialog.

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 14-02-2013 в 09:04.


Отправлено: 08:58, 14-02-2013 | #16


Пользователь


Сообщения: 108
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата opel431:
Зачем? Вызов SaveDialog - это уже не по умолчанию, а выбор.
Добавьте переключатель (CheckBox) и обрабатывайте - или сохранение по умолчанию (с проверкой существования файла и запроса на его перезапись), или свобода выбора для пользователя - вызов SaveDialog. »
Ок, у меня свобода выбора - SaveDialog

Отправлено: 14:08, 14-02-2013 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Сохранение в файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Сохранение параметра в файл и обратное действие Abricosio Скриптовые языки администрирования Windows 21 21-03-2012 14:31
Delphi - [решено] Сохранение в файл vovan1993 Программирование и базы данных 18 01-07-2011 17:49
Прочее - [решено] Сохранение консольной сессии в файл VladDV Общий по Linux 6 01-09-2010 11:27
Разное - Удален файл, отвечающий за сохранение скачиваемых документов lanal97 Хочу все знать 12 17-08-2010 09:01
[решено] Сохранение содержимого элемента EDIT в текстовый файл snoitaleR AutoIt 3 25-07-2009 14:34




 
Переход