procedure TfrmMain.Save1Click(Sender: TObject);
const Extensions: array[0..2] of string = ('', 'p', 'html');
begin
SaveDialog1.Filter :='Âñå ôàéëû (*.*)|*.*|Ôàéëû Parser3 (*.p)|*.p|Ôàéëû HTML (*.html)|*.html';
if SaveDialog1.Execute then
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName + Extensions[SaveDialog1.FilterIndex]);
end;
Простой вопрос про сохранение
Не пойму как сохранить файл с расширением заданным в маске. Что нужно добавить в код чтоб файл сохранился с расширением .p/ DefaultEXT не подходит.
procedure TfrmMain.Save1Click(Sender: TObject);
begin
SaveDialog1.Filter :='Все (*.*)|*.*|Файлы Parser3 (*.p)|*.p';
if SaveDialog1.Execute then begin
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName);
SynEdit1.SetFocus;
end;
end;
Цитата:
Originally posted by mindwork
Сразу извеняюсь если вопрос тупой, но я только начал изучать Delphi.
Не пойму как сохранить файл с расширением заданным в маске. Что нужно добавить в код чтоб файл сохранился с расширением .p/ DefaultEXT не подходит.
procedure TfrmMain.Save1Click(Sender: TObject);
begin
SaveDialog1.Filter :='Все (*.*)|*.*|Файлы Parser3 (*.p)|*.p';
if SaveDialog1.Execute then begin
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName);
SynEdit1.SetFocus;
end;
end;
Сразу извеняюсь если вопрос тупой, но я только начал изучать Delphi.
Не пойму как сохранить файл с расширением заданным в маске. Что нужно добавить в код чтоб файл сохранился с расширением .p/ DefaultEXT не подходит.
procedure TfrmMain.Save1Click(Sender: TObject);
begin
SaveDialog1.Filter :='Все (*.*)|*.*|Файлы Parser3 (*.p)|*.p';
if SaveDialog1.Execute then begin
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName);
SynEdit1.SetFocus;
end;
end;
У TSaveDialog есть свойство FilterIndex, которое указывает на выбранный в нем фильтр. Анализируй его значение и подставляй нужное расширение.
Цитата:
Originally posted by makbeth
У TSaveDialog есть свойство FilterIndex, которое указывает на выбранный в нем фильтр. Анализируй его значение и подставляй нужное расширение.
У TSaveDialog есть свойство FilterIndex, которое указывает на выбранный в нем фильтр. Анализируй его значение и подставляй нужное расширение.
Вобщем я помучился и вот это заработало.
Код:
procedure TfrmMain.Save1Click(Sender: TObject);
begin
SaveDialog1.Filter :='Âñå ôàéëû (*.*)|*.*|Ôàéëû Parser3 (*.p)|*.p|Ôàéëû HTML (*.html)|*.html';
if SaveDialog1.Execute then begin
if SaveDialog1.FilterIndex = 1 then
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName + 'p');
if SaveDialog1.FilterIndex = 2 then
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName + 'html')
else
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName);
SynEdit1.SetFocus;
end;
end;
begin
SaveDialog1.Filter :='Âñå ôàéëû (*.*)|*.*|Ôàéëû Parser3 (*.p)|*.p|Ôàéëû HTML (*.html)|*.html';
if SaveDialog1.Execute then begin
if SaveDialog1.FilterIndex = 1 then
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName + 'p');
if SaveDialog1.FilterIndex = 2 then
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName + 'html')
else
SynEdit1.Lines.SaveToFile(SaveDialog1.FileName);
SynEdit1.SetFocus;
end;
end;
Но вот какой вопрос неужели для каждого типа файлов придётся писать условие может как то по другому можно более красиво ?
Цитата:
Originally posted by mindwork
Но вот какой вопрос неужели для каждого типа файлов придётся писать условие может как то по другому можно более красиво ?
Но вот какой вопрос неужели для каждого типа файлов придётся писать условие может как то по другому можно более красиво ?
Нужно использовать не if, а case или (что наверное даже лучше):
Код: