Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2010, 18:37   #1
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию Ошибка сохранения в файл [Delphi]

Здравствуйте уважаемые эксперты! Вот есть код:
Код:
procedure TMainForm.ButtonSaveToFileClick(Sender: TObject);
var NameFile:string;
    FileOut:TextFile;
    R:extended;
    MdRes:byte;
begin
  SaveDialogFile.Title:='Укажите имя выходного файла';
  if not SaveDialogFile.Execute then
    Exit;
  if FileExists(SaveDialogFile.FileName) then
    begin
       MdRes:=MessageDlg('Файл '+NameFile+' существует! Перезаписать?',mtConfirmation,[mbYes,mbNo],0);
       if MdRes=mrNo then
         Exit;
    end;
  NameFile:=SaveDialogFile.FileName;
  try
    AssignFile(FileOut,NameFile);
    Rewrite(FileOut);
    writeln(FileOut,'Радиус бака равен: ',R);
    writeln(FileOut,'Высота бака равна: ',R);
    CloseFile(FileOut);
  except
    MessageDlg('Ошибка сохранения файла!',mtError,[mbOk],0);
  end;
end;
Но почему то всегда выскакивает ошибка сохранения файла.. Подскажите пожалуйста, как исправить ошибку..
StudeHt вне форума Ответить с цитированием
Старый 10.01.2010, 19:19   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,863
По умолчанию

Я что-то не вижу, где присваивается значение переменной R.
Arigato вне форума Ответить с цитированием
Старый 10.01.2010, 19:25   #3
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Цитата:
Я что-то не вижу, где присваивается значение переменной R.
Значение R я присваиваю в процедуре кнопки "Выполнить". Вот ее код:
Код:
procedure TMainForm.ButtonCalcResultClick(Sender: TObject);
var V,R,Eps:extended;
begin
  try
    V:=StrToFloat(Edit_V.Text);
    R:=StrToFloat(Edit_R0.Text);
    Eps:=StrToFloat(Edit_Eps.Text);
  except on EConvertError do
    begin
      MessageDlg('Не все поля заполнены!',mtError,[mbOk],0);
      Exit;
    end;
  end;
  R:=Newton(Eps,R,V);
  EditPrintR.Text:=FloatToStrF(R,fffixed,6,6);
  EditPrinth.Text:=FloatToStrF(R,fffixed,6,6);
end;
StudeHt вне форума Ответить с цитированием
Старый 10.01.2010, 19:32   #4
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Код:
function WriteText(path: string; var ftext: TextFile; data: string): byte;
begin
  try
    AssignFile(ftext, path);
    Rewrite(ftext);
    writeln(ftext,'Радиус бака равен: ', data);
    writeln(ftext,'Высота бака равна: ', data);
    CloseFile(ftext);
    Result := 1;
  except
    Result := 0;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  f: TextFile;
  R: Extended;

begin
  SaveDialog1.Title:='Укажите имя выходного файла';
  if SaveDialog1.Execute then begin
    if FileExists(SaveDialog1.FileName) then begin
        case MessageBox(Handle, PChar('Файл ' + SaveDialog1.FileName + ' существует. Перезаписать?'), PChar(Caption), MB_YESNO + MB_ICONWARNING) of
          ID_YES:
          begin
            if WriteText(SaveDialog1.FileName, f, FloatToStr(R)) = 0 then
              MessageBox(handle, 'Ошибка сохранения файла!', PChar(Caption), MB_OK + MB_ICONERROR);
          end;
        end;
    end;
    if WriteText(SaveDialog1.FileName, f, FloatToStr(R)) = 0 then
      MessageBox(handle, 'Ошибка сохранения файла!', PChar(Caption), MB_OK + MB_ICONERROR);
  end;
end;
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 10.01.2010, 19:40   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,863
По умолчанию

Цитата:
Сообщение от StudeHt
Значение R я присваиваю в процедуре кнопки "Выполнить".
Так R у Вас локальная, и внутри TMainForm.ButtonSaveToFileClick она не инициализирована.
Arigato вне форума Ответить с цитированием
Старый 10.01.2010, 19:43   #6
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Спасибо, решил просто считать R из Edit'а и вывести в файл..
StudeHt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавит картинку в файл без сохранения в файл Pacan4ik Microsoft Office Excel 3 30.07.2009 13:19
Сохранения каждой главы в отдельный файл mamed05 Microsoft Office Word 8 22.05.2009 16:19
Функции сохранения TStringList в Ini-файл Air Свободное общение 0 29.06.2008 22:37
Функции сохранения OutList в Ini-файл Air Свободное общение 0 26.06.2008 17:58
Проблемма сохранения потоков в файл EvgenMailRu Помощь студентам 1 03.09.2007 13:56