AW: Winword-OLE Search&Replace
Zitat:
Eine andere Möglichkeit wäre das kopieren des ganzen Text (Details weiß ich jetzt gerade nicht "wholeStory" könnte Dein Stichwort sein) und dann liest Du das Clipboard aus. Zitat:
Zitat:
Du bist Dir aber darüber im klaren, daß ein Word-Dokument nicht einfach nur aus Text besteht, sondern z.B in Sections unterteilt ist? Gruß K-H |
AW: Winword-OLE Search&Replace
OK, alles gut dann.
Meinst Du mit "Kennern" Textmarken? Die werden im englischen Bookmarks genannt und sind als solche im Selection Objekt zu finden (https://msdn.microsoft.com/en-us/lib.../ff193356.aspx). Mein Ausflug in die Word-COM-Programmierung handelte vom Suchen&Ersetzen solcher Textmarken. Wie gesagt wegen mangelhafter Performance (es ging um 300-400 Textmarken pro Dokument) wurde das zu Gunsten von Crystal Reports samt Word Export aufgegeben. Aber eventuell kann ich noch ein bis zwei Tipps zusammenkratzen. Quellcode liegt mir leider nicht mehr vor. Sherlock |
AW: Winword-OLE Search&Replace
Hallo,
nein, ist schon gut. Klappt ja ganz gut. Vielleicht kaufe ich ja wirklich mal ne Komponente (Scallabium?), oder schau mir mal TWordApplication an. Bei 300-400 Kennern würde ich auch krachen gehn ;) Mit Kenner meine ich eine eigene Kreation, wie z.B. #Name#, der soll dann durch den richtigen Namen ersetzt werden. Einfach so auf was anderes Umsteigen geht nicht, hängen ja ne Menge Kunden dran, die sich eigene Reports mit Word oder Open-Office gebastelt haben. < Du bist Dir aber darüber im klaren, daß ein Word-Dokument nicht einfach nur aus Text besteht, sondern z.B in Sections unterteilt ist? > Ja, ist bekannt, benutzt aber von unseren Kunden keiner. Wir haben vorgefertigte Reports (mit einer Sektion), die werden abgeändert. Ich habe aber mal testweise eine Word-Datei mit 2 Sektions erzeugt, und schon wurde bei der 2. Sektion nichts ersetzt ... Muss ich noch ändern. |
AW: Winword-OLE Search&Replace
Wir hatten bewußt auf die Eigenkreationen verzichtet, weil die immer wieder mal zerschossen werden könnten. Textmarken muß man hingegen sehr bewußt... kaputtieren. ;) Außerdem können Textmarken von Word besser gesucht werden, weil sie als eigene Objekte geführt sind. Aber wenn die Kiste schon steht, will ich da nicht mehr rein reden :)
Sherlock |
AW: Winword-OLE Search&Replace
ich hab da ein Makro ausgegraben, daß mir ein wenig die Struktur eines Worddokumentes analysiert:
Code:
vielleicht hilft Dir das weiter
Sub Makro2()
' ' Dokument Inhalt ' ' With ActiveDocument MsgBox ("im Dokument enthaltene Shapes:" + Str(.Shapes.Count)) For a = 1 To .Shapes.Count MsgBox (a + .Shapes(a).Name) Next MsgBox ("im Dokument enthaltene InlineShapes:" + Str(.InlineShapes.Count)) MsgBox ("im Dokument enthaltene Sections:" + Str(.Sections.Count)) For a = 1 To .Sections.Count MsgBox ("Anzahl Header" + Str(.Sections(a).Headers.Count) + " in Section" + Str(a) + Chr(13) + Chr(10) + _ "Anzahl Footer" + Str(.Sections(a).Footers.Count) + " in Section" + Str(a)) For b = 1 To .Sections(a).Headers.Count MsgBox ("Header " + Str(b) + " Anzahl Shapes " + Str(.Sections(a).Headers(b).Shapes.Count)) Next Next MsgBox ("im Dokument enthaltene bookmarks: " + Str(.Bookmarks.Count)) For a = 1 To .Bookmarks.Count MsgBox (Str(a) + "Bookmark Name:" + .Bookmarks(a).Name + Chr(13) + Chr(10) + _ "Bookmark Länge:" + Str(.Bookmarks(a).Range.StoryLength)) Next ' MsgBox ("im Dokument enthaltene FooterHeader:" + Str(.Shapes.Count)) End With 'ActiveDocument End Sub Gruß K-H da stimmt was nicht mit den codeTags?? Pardon, da war noch eine Macke drin. Sub Makro2() ' ' Dokument Inhalt ' ' With ActiveDocument MsgBox ("im Dokument enthaltene Shapes:" + Str(.Shapes.Count)) For a = 1 To .Shapes.Count MsgBox (Str(a) + .Shapes(a).Name) Next MsgBox ("im Dokument enthaltene InlineShapes:" + Str(.InlineShapes.Count)) MsgBox ("im Dokument enthaltene Sections:" + Str(.Sections.Count)) For a = 1 To .Sections.Count MsgBox ("Anzahl Header" + Str(.Sections(a).Headers.Count) + " in Section" + Str(a) + Chr(13) + Chr(10) + _ "Anzahl Footer" + Str(.Sections(a).Footers.Count) + " in Section" + Str(a)) For b = 1 To .Sections(a).Headers.Count MsgBox ("Header " + Str(b) + " Anzahl Shapes " + Str(.Sections(a).Headers(b).Shapes.Count)) Next Next MsgBox ("im Dokument enthaltene bookmarks: " + Str(.Bookmarks.Count)) For a = 1 To .Bookmarks.Count MsgBox (Str(a) + "Bookmark Name:" + .Bookmarks(a).Name + Chr(13) + Chr(10) + _ "Bookmark Länge:" + Str(.Bookmarks(a).Range.StoryLength)) Next ' MsgBox ("im Dokument enthaltene FooterHeader:" + Str(.Shapes.Count)) End With 'ActiveDocument End Sub |
AW: Winword-OLE Search&Replace
Ist das lossy zipped? :D
Die Forensoftware scheint Word-Macros auszublenden ;) Ah, so geht es wohl besser. Sherlock |
AW: Winword-OLE Search&Replace
Zitat:
Gruß K-H |
AW: Winword-OLE Search&Replace
Hallo,
danke schön. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 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