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