Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Помогите с сохранением


Автор: Pavelbej 27.7.2005, 12:18
прога работает с .txt и .html. Пишу текст, сохраняю как .txt. Пишу другой, сохраняю под тем же именем, но расширение ставлю .html и в результате собщение о том что файл существует. Как проверить расширение и сохранить файл под тем же именем. Заранее благодарен всем.


Код

procedure TForm1.SaveAs1Click(Sender: TObject);
begin
    if savedialog1.Execute then
        begin
          if FileExists(form1.Caption) then
            if form1.Caption=savedialog1.FileName then
               if MessageDlg(Format('The file already exists, to rewrite?', [form1.caption]),
          mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
          memo1.Lines.SaveToFile(savedialog1.filename);
          form1.Caption:=savedialog1.FileName;
          memo1.Tag:=0;
        end;
end;

Автор: Bes 27.7.2005, 12:34
А у тебя в сэйвдиалоге небось стоит расширение по умолчанию?
кстати по коду зачем эта строчка?
Код

if form1.Caption=savedialog1.FileName then
может в этом проблема? может где-то раньше кэпшену как раз присваевается файлнэйм? например вот здесь дальше
Код

form1.Caption:=savedialog1.FileName;


Автор: Pavelbej 27.7.2005, 20:49
Этот код я поставил потому что когда я созранял текстовые файлы под другим именем то все равно вылезал диалог о том что файл уже существует. Помогите сомсем запутался

Автор: imm 27.7.2005, 21:32
мщжно попробовать

Код

if SaveDialog1.Execute then
begin
  if FileExists(SaveDialog1.FileName) then
    if MessageDlg(Format('The file already exists, to rewrite?', [form1.caption]),
          mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit; 

  memo1.Lines.SaveToFile(savedialog1.filename);
  form1.Caption:=savedialog1.FileName;
  memo1.Tag:=0;
end;


Вроде должно работать, вначале предлагаем выбрать файл, а потом проверяем его существование... Или я что-то не понял???

Автор: Pavelbej 28.7.2005, 01:10
Не работает. Написал пару слов, сохранил как "omega.txt", добавил еще символ, сохранил как "omega.html"- говорит что файл уже существует, но вить разрешение другое. В чем дело?

Автор: Rrader 28.7.2005, 03:37
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
 saveDialog1.Options := SaveDialog1.Options + [ofOverWritePrompt];
 if savedialog1.Execute then
        begin
          memo1.Lines.SaveToFile(savedialog1.filename);
          form1.Caption:=savedialog1.FileName;
          memo1.Tag:=0;
        end;
end;

Автор: Romikgy 28.7.2005, 08:39
А не легче при сохранении , взять savedialog1.filename отсчитать с конца 3 символа и заменить их на htm или html ????

Автор: mvdr 29.7.2005, 08:07
Код

procedure TForm1.ButtonOpenClick(Sender: TObject);
var str:string;
    i:integer;
begin
if OpenDialog1.Execute then
begin
Memo1.Lines.Clear;
Memo1.Lines.LoadFromfile(OpenDialog1.FileName);
i:=Length(OpenDialog1.FileName);
while copy(Opendialog1.FileName,i,1)<>'\'do
begin
 str:=copy(Opendialog1.FileName,i,1)+str;
 i:=i-1;
end;
Form1.Caption:=str;
end;
end;

procedure TForm1.ButtonSaveClick(Sender: TObject);
begin
if savedialog1.Execute then
 begin
  Memo1.Lines.SaveToFile(SaveDialog1.FileName);
 end;
end;


Работает, проверено

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)