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

Компьютерный форум 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

 

В Поисках Истины


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

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


Цитата novashdima:
но почему в начальном варианте не работает? »
Код начального варианта?

Может вы попросту забыли поставить после end ";"?
Код: Выделить весь код
then Exit;
end;

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 15:50, 11-02-2013 | #2



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

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


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


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

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


Цитата LilLoco:
Код начального варианта? »
Это и есть начальный вариант, потом я добавил функцию в указанное место.
Цитата LilLoco:
Может вы попросту забыли поставить после end ";"? »
Перед else точка с запятой не ставится

Отправлено: 15:51, 11-02-2013 | #3


В Поисках Истины


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

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


Цитата novashdima:
Перед else точка с запятой не ставится »
В начальном варианте же у вас нет вроде бы else.
Цитата novashdima:
Вставил ветку else и туда написал

IniFile.IniOptions.SaveToFile(SaveDialog.FileName); и все работает »
В коде то же.
Цитата novashdima:
потом я добавил функцию в указанное место »
Присутствует в коде, значит не начальный вариант.

Либо вы вставили здесь
Цитата novashdima:
Код: Выделить весь код
then Exit; end
»
Выражайтесь понятнее, пожалуйста.

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 16:32, 11-02-2013 | #4


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


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

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


эх.... ок, вот начальная процедура
Код: Выделить весь код
procedure TMainForm.SaveButtonClick(Sender: TObject);
begin
  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);
end;
Вот добавил строку:
Код: Выделить весь код
procedure TMainForm.SaveButtonClick(Sender: TObject);
begin
  if SaveDialog.Execute then
  if FileExists(SaveDialog.FileName) then
    begin
      if (MessageDlg('Файл уже существует.' + #13#10 + 'Переписать?', mtConfirmation, mbOkCancel, 0) <> mrOk)
      then Exit
      else IniFile.IniOptions.SaveToFile(SaveDialog.FileName);
    end
    else
      IniFile.IniOptions.SaveToFile(SaveDialog.FileName);
end;

Отправлено: 16:40, 11-02-2013 | #5


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


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

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


Цитата novashdima:
ведь в любом случае последняя строка должна выполняться в любом случае... »
Это вот эта чтоли:
Цитата novashdima:
else IniFile.IniOptions.SaveToFile(SaveDialog.FileName); »
С чего это она в любом случае должна выполняться? Только если файл не существует.
Вот во втором варианте вы вписали сохранение файла и в ту ветку, которая выполняется при существовании файла, поэтому у вас и начало работать.

Последний раз редактировалось torauma, 12-02-2013 в 12:02.


Отправлено: 17:05, 11-02-2013 | #6


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


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

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


Цитата torauma:
С чего это она в любом случае должна выполнятся? Только если файл не существует. »
Хм... действительно провтыкал...

Отправлено: 17:16, 11-02-2013 | #7


Новый участник


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

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


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

Отправлено: 15:03, 12-02-2013 | #8


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


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

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


Цитата iMirRor:
Если вы используете "Exit", то зачем столько "else", не проще было бы так: »
Да, спасибо, именно так я и хотел написать, но написал чуть по-другому, а потом что-то башка не варила, так и не сообразил.

Отправлено: 19:27, 12-02-2013 | #9


Аватара для opel431

Ветеран


Contributor


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

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


Ну да...., не проще ли, блок if not (FileExists(..))..., а в нем if SaveDialog.Execute...

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


Отправлено: 04:23, 13-02-2013 | #10



Компьютерный форум 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




 
Переход