Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Объединение файлов

Автор: Yurka 20.04.2012 15:11

Вопрос: как можно програмно объединть несколько файлов в один. Есть 10 вордовских файлов с названиями 1.doc, 2.doc, ..., 10.doc. Их нужно объединть в один файл Plan.doc, так чтобы содержимое каждого начиналось с нового листа. Может есть пример выполнения кода, для такого типа заданий?

Автор: IUnknown 20.04.2012 16:12

Цитата
как можно програмно объединть несколько файлов в один
Легко:
procedure TForm1.Button1Click(Sender: TObject);
var
MsWord : Variant;
i : integer;
begin
// Ошибки не обрабатывал
MsWord := CreateOleObject('Word.Application');
MsWord.Visible := true;
MsWord.Documents.Add;

for i := 1 to 10 do
begin
MsWord.Selection.InsertFile(FileName := Format('F:\%d.doc', [i])); // Путь укажешь сам
MsWord.Selection.InsertBreak(Type := wdPageBreak); // wdPageBreak = 7
end;

// Всё, сохраняешь новый документ, и закрываешь Word
end;

Автор: Yurka 20.04.2012 16:48

Цитата(IUnknown @ 20.04.2012 12:12) *

Легко:
procedure TForm1.Button1Click(Sender: TObject);
var
MsWord : Variant;
i : integer;
begin
// Ошибки не обрабатывал
MsWord := CreateOleObject('Word.Application');
MsWord.Visible := true;
MsWord.Documents.Add;

for i := 1 to 10 do
begin
MsWord.Selection.InsertFile(FileName := Format('F:\%d.doc', [i])); // Путь укажешь сам
MsWord.Selection.InsertBreak(Type := wdPageBreak); // wdPageBreak = 7
end;

// Всё, сохраняешь новый документ, и закрываешь Word
end;


большое спасибо!!!! ещеё такой вопрос: файлы находятся в катаоге спрограммой, то есть полный путь может разный. как записать , чтобы программа постоянно брала файлы из текущего каталога и пользователя ничего не спрашивала?

Автор: IUnknown 20.04.2012 17:30

MsWord.Selection.InsertFile(FileName := Format('%s\%d.doc', [ExtractFileDir(Application.Exename), i]));

Автор: Yurka 20.04.2012 20:06

Цитата(IUnknown @ 20.04.2012 13:30) *

MsWord.Selection.InsertFile(FileName := Format('%s\%d.doc', [ExtractFileDir(Application.Exename), i]));


good.gif Спасибо!!!