Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как исправить...? [D7, XP]


Nanos ©   (2007-01-28 14:15:00) 

Когда я сохраняю содержимое RichEdit, я делаю так
if SaveDialog.Execute then
begin
with TStringList.Create do begin
Text := RichEdit1.Text;
SaveToFile(savedialog.FileName);
Free;
end;
end;
Но у меня проблемы с форматом сохранённого файла. Он сохраняется без фрмата, фрмат приходиться прописывать вручную. Тоесть если я изменю код так
if SaveDialog.Execute then
begin
with TStringList.Create do begin
Text := RichEdit1.Text;
SaveToFile(savedialog.FileName +,'.txt');
Free;
end;
end;
то он сохраняется нормально, но этот код не подходит так как мой Savedialog может сохранять и другие форматы.
Подскажите как исправить эту ошибку


GrayFace   (2007-01-29 13:23:00) [1]

В событии OnTypeChange пиши:
with OpenDialog1 do
  case FilterIndex of
    1: DefaultExt:='.txt';
    2: DefaultExt:='.bmp';
  enx;

А после Execute никаких расшерений не добавляй.


RASkov   (2007-01-29 02:13:00) [2]

> [0] Nanos   (28.01.07 14:15)

if SaveDialog.Execute then
begin
with TStringList.Create do begin
Text := RichEdit1.Text;
SaveToFile(savedialog.FileName+,'.txt');
Free;
end;
end;
А зачем такие фокусы, можно и RichEdit1.Lines.SaveToFile();
И
if SD.Execute then begin      
case sd.FilterIndex of
1: RichEdit1.Lines.SaveToFile(SD.FileName+'.txt');
2: RichEdit1.Lines.SaveToFile(SD.FileName+'.rtf');
else RichEdit1.Lines.SaveToFile(SD.FileName+SD.DefaultExt);
end;
end;

Только еще нужно учитывать ввел ли пользватель в SD.FileName имя файла с раширением или без него или может получится такое имя filename.ext.txt


Nanos   (2007-01-28 14:40:00) [3]

Спасибо всё работает. У меня остался один вопрос можно ли как нибудь сохранять текст в различных кадировках, так как это можно делать в стандартном блокноте.


antonn   (2007-01-28 14:17:00) [4]

if SD.Execute then begin      
if sd.FilterIndex=1 then  begin  SavePlayList_PLS( sd.FileName+'.pls');  end;
if sd.FilterIndex=2 then  begin  SavePlayList_M3U( sd.FileName+'.m3u' ); end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо