Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Вопрос о вставке текста в word из дельфи


Автор: Mixasik 20.2.2007, 20:08
Вот есть програмка, на месте шаблона должна вставлять текст из текстового файла в документ word, но она вставляет только первую строчку из списка и ничего не изменяется потом. Вообще надо, чтобы текст вставился в word заместо слов - шаблонов, потом желатель, чтобы документ распечатался, ну потом новая строчка из файла записалась снова в word и документ распечатался...
Может кто может?

Автор: Albinos_x 20.2.2007, 20:49
1. Вы промахнулись разделом... Вам сюда: http://forum.vingrad.ru/delphi-activex-com-corba-ole.html
2. Ознакомтесь со статьёй про программированию ворд: http://forum.vingrad.ru/topic-84634.html
3. В прикреплёном архиве нет файло ворд(шаблона)
4. читайте комментарии:
Код
...
While not eof(F) do
    Begin

     Readln(f,st);
     Date:='12     мая          6               275';
     sur:=copy(st,1,pospr(st)-1);
     Delete(st,1,pospr(st));
     nam:=copy(st,1,pospr(st)-1);
     Delete(st,1,pospr(st));
     otch:=st;
     surEdit.Text:=sur;
     files:='/'+sur+'.doc';
     nameEdit.Text:=nam;
     otchEdit.Text:=otch;
     StartOfDoc;FindAndPasteTextDoc('###sur',sur);
     StartOfDoc;FindAndPasteTextDoc('###name',nam);
     StartOfDoc;FindAndPasteTextDoc('###otch',otch);
     StartOfDoc;FindAndPasteTextDoc('###date',date);
     SaveDocAs(ExtractFileDir(application.ExeName)+files);               // <-- зачем после каждого изменения сохраняете?????????
     CloseDoc;                                                                       // <-- Зачем закрываете документ, если замены ещё не закончили???????
     shellexecute(handle,'open',pchar(ExtractFileDir(application.ExeName)+files),'','',1);
     attform.ShowModal;
     DeleteFile(files);
               end;

может лучше всё таки так:
Код

While not eof(F) do
    Begin

     Readln(f,st);
     Date:='12     мая          6               275';
     sur:=copy(st,1,pospr(st)-1);
     Delete(st,1,pospr(st));
     nam:=copy(st,1,pospr(st)-1);
     Delete(st,1,pospr(st));
     otch:=st;
     surEdit.Text:=sur;
     files:='/'+sur+'.doc';
     nameEdit.Text:=nam;
     otchEdit.Text:=otch;
     StartOfDoc;FindAndPasteTextDoc('###sur',sur);
     StartOfDoc;FindAndPasteTextDoc('###name',nam);
     StartOfDoc;FindAndPasteTextDoc('###otch',otch);
     StartOfDoc;FindAndPasteTextDoc('###date',date);
               end;
SaveDocAs(ExtractFileDir(application.ExeName)+files);
     CloseDoc;
     shellexecute(handle,'open',pchar(ExtractFileDir(application.ExeName)+files),'','',1);
     attform.ShowModal;
     DeleteFile(files);

Автор: Winprogrammer 20.2.2007, 20:50
А ты не пробовал слегка структурировать свой код? Иногда помогает другим программистам при разборе твоего проекта. smile))

Добавлено @ 20:52 
А не проще кинуть на форму со вкладки Servers компоненты: WordDocument и WordApplication и с ними дальше работать?

Автор: Albinos_x 20.2.2007, 21:00
думаю, что использовался код Корнякова, с его странички... 

Автор: Mixasik 21.2.2007, 06:43
Цитата(Albinos_x @  20.2.2007,  20:49 Найти цитируемый пост)
может лучше всё таки так:


Попробую.


Цитата(Albinos_x @  20.2.2007,  21:00 Найти цитируемый пост)
думаю, что использовался код Корнякова, с его странички...


Не знаю, я нашел его на каком- то сайте...

Цитата(Albinos_x @  20.2.2007,  20:49 Найти цитируемый пост)
2. Ознакомтесь со статьёй про программированию ворд:


Вот это наверное пригодится...

Автор: Mixasik 21.2.2007, 17:49
Ничего не работает в конце создаются документы с данными первого человека из списка... smile 

Автор: Albinos_x 21.2.2007, 20:25
это должно было происходить в том варианте, который прикреплён....

код в студию...

Автор: Mixasik 21.2.2007, 22:24
Я разобрался вроде, когда файл изменяется, он почему - то сохранялся с этим же именем, то есть если открыть файл -шаблон, пересохранить его и обрабатывать то все нормально работет, потом удалить, далее снова открывается шаблон-пересохраняется-удаляется и так далее...
И в этоге шаблон не изменяется вообще.


Автор: Albinos_x 22.2.2007, 03:44
ничего не понял.....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)