Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Word OLE InsertFile (https://www.delphipraxis.net/155216-word-ole-insertfile.html)

hoika 13. Okt 2010 10:43

Word OLE InsertFile
 
Hallo #,

ich versuche, per OLE-Automation in eine DOC-Datei eine RTF-Datei einzutragen.
Das ganze läuft noch unter OleVariant ... (historische Gründe).

Ich kenne den Befehl: InsertFile.

Jetzt soll die RTF-Datei aber eine bestimmte Stelle.

Die DOC sieht so aus (ohne die #-Zeilen.

#DOC-Start
Sehr geehrter Herr Müller,

hier die gewünschten Informationen:
<INFO>
#DOC-Ende

<INFO> soll jetzt durch den Inhalt der RTF-Datei ersetzt werden.

Wie mache ich das ?
Den Text direkt zu ersetzen per "Select.Execute (Replace)" klappt ja nicht.


Danke


Heiko

GHorn 13. Okt 2010 13:31

AW: Word OLE InsertFile
 
Hi,

hilft dir das hier

http://entwickler-forum.de/showthread.php?t=17415

weiter?

Gruß
Gerald

Bummi 13. Okt 2010 13:42

AW: Word OLE InsertFile
 
Quick and Dirty ungekapselt


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Fword,FDocument,FFindObject:OleVariant;
  Filename:String;

begin
   Filename := 'C:\temp\test.doc';
        Fword       := CreateOleObject('Word.Application');
       FDocument   := Fword.Documents.Add(Filename);
       FFindObject := FDocument.ActiveWindow.Selection.Find;
        Fword.visible := true;
        FFindObject.ClearFormatting;
        FFindObject.Replacement.ClearFormatting;
        FFindObject.Text := '#DOC-Ende';
        FFindObject.Forward := True;
        FFindObject.Replacement.Text := '';
        FFindObject.Wrap := 1;
        FFindObject.MatchCase := False;
        FFindObject.MatchWholeWord := False;
        FFindObject.MatchWildcards := False;
        FFindObject.MatchSoundsLike := False;
        FFindObject.MatchAllWordForms := False;
        if FFindObject.Execute() then                   Fword.selection.InsertFile('C:\temp\test.rtf')

end;

hoika 13. Okt 2010 16:22

AW: Word OLE InsertFile
 
Hallo,

danke nach vielen Suchen habe ich jetzt auch den Code wie Bummi,
nur :

Er ersetzt keinen Kopfzeilen-/Fußnoten-Text ;(

*seufz*

PS:
Dort benutze ich das normale
WordApp.Selection.Find.Execute(Replace:= wdReplaceAll);


Heiko

Bummi 13. Okt 2010 16:38

AW: Word OLE InsertFile
 
umschalten vor dem Suchen
Delphi-Quellcode:
  wdSeekMainDocument=0;
  wdSeekCurrentPageHeader=9;
 wdSeekCurrentPageFooter=10;



w.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader;

w.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocument;

etc....

hoika 13. Okt 2010 18:06

AW: Word OLE InsertFile
 
Danke,

ich probier es morgen auf der Arbeit aus.

#Update:'
Der Kandidat Bummi erhält 100 Punkte und ein Fleißlob.
Klappt Prima !!!

Danke


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz