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


Автор: Pavelbej 8.7.2005, 21:14
Получил задание сделать текстовый редактор, но вот с чем столкнулся. Если открываю существующий файл, делаю изменения и жму на "Save" все идет нормально, если создаю новый файл и сохраняю то он сохраняется без расширения ".txt". Я толко начал учить Delphi, помогите. Вот код, может исправите

Код
procedure TForm1.Open1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    begin
      Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
      Form1.Caption := OpenDialog1.FileName;
      form1.Memo1.Tag:=0;
    end;
end;



Procedure Tform1.Save1Click(sender: Tobject);
begin
if Caption='Untitled' then
   saveas1click(Sender)
   else
        begin
        savedialog1.FileName:=form1.Caption;
        Memo1.Lines.SaveToFile(form1.Caption);
        memo1.Tag:=0;
        end;
end;



procedure TForm1.SaveAs1Click(Sender: TObject);
begin
     SaveDialog1.Title:='Save as...';
     if savedialog1.Execute then
        begin
          Memo1.Lines.SaveToFile(savedialog1.filename);
          form1.Caption:=savedialog1.FileName;
          memo1.Tag:=0;
        end;
end;

Автор: mvdr 8.7.2005, 21:17
Код

procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
Form1.Caption := OpenDialog1.FileName;
form1.Memo1.Tag:=0;
end;
end;



Procedure Tform1.Save1Click(sender: Tobject);
begin
if Caption='Untitled' then
saveas1click(Sender)
else
begin
savedialog1.FileName:=form1.Caption+'.txt';
Memo1.Lines.SaveToFile(form1.Caption+'.txt');
memo1.Tag:=0;
end;
end;



procedure TForm1.SaveAs1Click(Sender: TObject);
begin
SaveDialog1.Title:='Save as...';
if savedialog1.Execute then
begin
Memo1.Lines.SaveToFile(savedialog1.filename);
form1.Caption:=savedialog1.FileName+'.txt';
memo1.Tag:=0;
end;
end; 


Просто ручками добавляй расширение *.txt

Автор: Quadr0 8.7.2005, 22:23
...

Автор: mvdr 8.7.2005, 23:02
Цитата(Quadr0 @ 8.7.2005, 23:23)
А откуда мы знаем, что пользователю нужно txt?


Цитата(Pavelbej @ 8.7.2005, 22:14)
создаю новый файл и сохраняю то он сохраняется без расширения ".txt"



Добавлено @ 23:04
в противном случае, можно дописать, что "пользователь, пиши имя файла без разршения"

Автор: Alex 9.7.2005, 00:17
Посмотреть свойства компонента и почитать в хелпе, что каждое значит нам конечно слабо smile
Цитата
Specifies a default file extension.

Delphi syntax:

property DefaultExt: String;

C++ syntax:

__property AnsiString DefaultExt = {read=FDefaultExt, write=FDefaultExt};

Description

DefaultExt specifies a file extension that is appended automatically to the selected file name, unless the selected file name already includes a registered extension. If the user selects a file name with an extension that is unregistered, DefaultExt is appended to the unregistered extension.

Extensions longer than three characters are not supported. Do not include the period (.) that divides the file name and its extension.

Автор: Quadr0 9.7.2005, 01:20
...

Автор: Alex 9.7.2005, 01:23
Цитата(Quadr0 @ 9.7.2005, 02:20)
Alex, а Я что не так сказал?

Все так, просто печально, что народ не смотрит даже на свойства компонентов

Автор: Pavelbej 9.7.2005, 14:39
Всем огромное спасибо, все работает. Считал себя наблюдательным челом, а незаметив DefaultExt понял что это не так.

Автор: z-END 9.7.2005, 15:04
а еще лучше использовать дедовский метод:
Код

Memo1.Lines.SaveToFile (ChangeFileExt (form1.Caption,'.txt'));


Автор: Dimannn 11.7.2005, 00:46
Я обычно делаю так:
Код

If ExtractFileExt(Filename)<>'.txt' then  FileName:=FileName+'.txt'

Автор: z-END 11.7.2005, 08:53
Dimannn
допустим я назвал файл Filename:='C:\test.TxT'
тогда после твоего кода Filename='C:\test.TxT.txt' ?!
поэтому проще использовать ф-цию ChangFileExt

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