Сейчас пишу программу, в которой надо одновременно открывать и сохранять по три файла с РАЗНЫМ расширением.
При этом один файл основной, а два вспомогательных. При открытии файлов , вспомогательных может не быть вообще и надо делать проверку на их присутствие!
Код тестировался на Delphi Turbo Lite и на Lazarus ( корректно работает только с файлами названными в латинице)
Procedure SaveAs; begin If Form2.SaveDialog1.Execute then begin FileWork:=Form2.SaveDialog1.FileName; if Pos('.',FileWork)<> 0 then FileWork:= Copy(Form2.SaveDialog1.FileName, 1, Length(Form2.SaveDialog1.FileName)-4); Form2.Memo1.Lines.SaveToFile(FileWork+'.txt'); Form2.Memo2.Lines.SaveToFile(FileWork+'.dbs'); Form2.Memo3.Lines.SaveToFile(FileWork+'.dbp'); end; end; procedure TForm2.N5Click(Sender: TObject); {sozdat'} begin if Memo1.Modified then begin SaveAs; end; Memo1.Clear; Memo2.Clear; Memo3.Clear; Memo1.Modified:= false; SaveDialog1.FileName:= ''; FileWork:= ''; end; procedure TForm2.N6Click(Sender: TObject); {open} begin if OpenDialog1.Execute then begin FileWork:=OpenDialog1.FileName; if Pos('.',FileWork)<> 0 then FileWork:= Copy(OpenDialog1.FileName, 1, Length(OpenDialog1.FileName)-4); Memo1.Lines.LoadFromFile(FileWork+'.txt'); if FileExists(FileWork+'.dbs') then Memo2.Lines.LoadFromFile(FileWork+'.dbs'); if FileExists(FileWork+'.dbp') then Memo3.Lines.LoadFromFile(FileWork+'.dbp'); Memo1.Modified:= false; end; end; procedure TForm2.N7Click(Sender: TObject); {save} begin If FileWork='' then SaveAs else begin Memo1.Lines.SaveToFile(FileWork+'.txt'); Memo2.Lines.SaveToFile(FileWork+'.dbs'); Memo3.Lines.SaveToFile(FileWork+'.dbp'); end; end; procedure TForm2.N8Click(Sender: TObject); {save as} begin SaveAs; end; procedure TForm2.N9Click(Sender: TObject); {vyhod} begin Close; end;
Следует обратить внимание на процедуру SaveAs
В ней необходимо указывать форму!!!
строка
FileWork:= Copy(OpenDialog1.FileName, 1, Length(OpenDialog1.FileName)-4);
Удаляет расширение ( последние 4 символа ) файла.
Переменную
FileWork надо объявить как String
var
Form2: TForm2;
FileWork: String;
У диалогов поставить фильтр. В моём случае это *.txt