Сейчас пишу программу, в которой надо одновременно открывать и сохранять по три файла с РАЗНЫМ расширением.
При этом один файл основной, а два вспомогательных. При открытии файлов , вспомогательных может не быть вообще и надо делать проверку на их присутствие!
Код тестировался на 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