Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: VCL (C++ Builder) ::  Word Dokumente Zusammenführen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
gert_mue
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 40
Beitrag gert_mue Mitglied 08:21:42 08.02.2010   Titel:   Word Dokumente Zusammenführen            Zitieren

Hallo an alle!

Ich wende mich an Euch, weil ich nirgendswo eine Lösung für folgendes Problem gefunden habe.
Ich möchte gern in ein Worddokument ein zweites Worddokument einfügen bzw. anhängen (ähnl. wie im Word Einfügen->Datei).
Folgender Bsp-Code:(ohne TWordApplication!!)

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
//als Beispiel nur notwendigster Code
Variant vWord, vDocuments, vSelections, vActivedocuments;
String datei1 = "C:\\datei1.doc";
String datei2 = "C:\\datei2.doc";

vWord = Variant::CreateObject("Word.Application");

vDocuments = vWord.OlePropertyGet("Documents");
vDocuments.OleProcedure("Open", datei1.c_str());
vSelections = vWord.OlePropertyGet("Selection");
vActivedocuments = vWord.OlePropertyGet("ActiveDocument");
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
//als Beispiel nur notwendigster Code
Variant vWord, vDocuments, vSelections, vActivedocuments;
String datei1 = "C:\\datei1.doc";
String datei2 = "C:\\datei2.doc";

vWord = Variant::CreateObject("Word.Application");

vDocuments = vWord.OlePropertyGet("Documents");
vDocuments.OleProcedure("Open", datei1.c_str());
vSelections = vWord.OlePropertyGet("Selection");
vActivedocuments = vWord.OlePropertyGet("ActiveDocument");
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
//als Beispiel nur notwendigster Code
Variant vWord, vDocuments, vSelections, vActivedocuments;
String datei1 = "C:\\datei1.doc";
String datei2 = "C:\\datei2.doc";

vWord = Variant::CreateObject("Word.Application");

vDocuments = vWord.OlePropertyGet("Documents");
vDocuments.OleProcedure("Open", datei1.c_str());
vSelections = vWord.OlePropertyGet("Selection");
vActivedocuments = vWord.OlePropertyGet("ActiveDocument");

Jetzt muss es doch was geben wie:
vDocuments/vSelections/vActivedocuments.OleProcedure("InsertFile?", ???)

Hat jemand eine Lösung wie man ein Dokument anhängt?
Freue mich sehr über eine Lösung.

Danke im Voraus!

_________________
gert_mue
Jansen
Moderator

Benutzerprofil
Anmeldungsdatum: 30.04.2001
Beiträge: 14490
Beitrag Jansen Moderator 08:37:08 08.02.2010   Titel:   Re: Word Dokumente Zusammenführen            Zitieren

gert_mue schrieb:
Jetzt muss es doch was geben wie:
vDocuments/vSelections/vActivedocuments.OleProcedure("InsertFile?", ???)

Den kompletten Vorgang in Word per Makro-Recorder aufzeichnen und den resultierenden VBA-Code auswerten!?

_________________
Jansen (Mod nur im BCB-Forum)
gert_mue
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 40
Beitrag gert_mue Mitglied 08:48:19 08.02.2010   Titel:              Zitieren

Hmm, da kommt folgendes:

Selection.InsertFile FileName:="vorlage.doc", Range:="", _
ConfirmConversions:=False, Link:=False, Attachment:=False

naja ünersetzen würde ich das so:

vSelections.OleProcedure("InsertFile", datei2.c_str(),?,?,?,?);

Kann es leider im Moment nicht ausprobieren. Was muss an Stelle der ?

_________________
gert_mue
Linnea
Mitglied

Benutzerprofil
Anmeldungsdatum: 03.06.2004
Beiträge: 1596
Beitrag Linnea Mitglied 09:05:15 08.02.2010   Titel:              Zitieren

Google ist manchmal recht informativ: Link

und falls du kein Russisch kannst :D:
C/C++ Code:
vSelections.OleProcedure("InsertFile", datei2.c_str(), "", false, false);
C/C++ Code:
vSelections.OleProcedure("InsertFile", datei2.c_str(), "", false, false);
C/C++ Code:
vSelections.OleProcedure("InsertFile", datei2.c_str(), "", false, false);

der 3. Wert definiert anscheinend den Bereich der kopiert werden soll und übergibt in diesem Fall alles

_________________
Zitat von Joe_M. "... DAS WORT LINNEAS: Und es stand geschrieben in der Hilfe zum BCB soll er suchen, bis er fündig ward, oder dem Greisentum anheim fiel."
gert_mue
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 40
Beitrag gert_mue Mitglied 09:23:46 08.02.2010   Titel:              Zitieren

Wow, das werde ich heute Abend mal probieren.
Also auf diese Seite bin ich nicht gestoßen.

Ich gebe bescheid ob es funktioniert hat.

Danke!

_________________
gert_mue
gert_mue
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 40
Beitrag gert_mue Mitglied 18:53:16 08.02.2010   Titel:              Zitieren

Hallo,

also InserFile hat funktioniert :D

Jedoch möchte ich vorher noch ans Ende des Dokumentes springen und einen Seitenumbruch einfügen.
Dazu Code aus Word-VBA angepasst (dort funktionierts):

C/C++ Code:
//soll ans Ende des Dokumentes gehen
vSelections.OleProcedure("EndKey", wdStory, wdMove);
//soll Seitenumbruch einfügen
vSelections.OleProcedure("InsertBreak", wdPageBreak);
C/C++ Code:
//soll ans Ende des Dokumentes gehen
vSelections.OleProcedure("EndKey", wdStory, wdMove);
//soll Seitenumbruch einfügen
vSelections.OleProcedure("InsertBreak", wdPageBreak);
C/C++ Code:
//soll ans Ende des Dokumentes gehen
vSelections.OleProcedure("EndKey", wdStory, wdMove);
//soll Seitenumbruch einfügen
vSelections.OleProcedure("InsertBreak", wdPageBreak);

Aber leider kann der Compiler nichts mit wdStory, wdMove und wdPageBreak anfangen (undefiniertes Symbol).

Was oder wie muss hier die richtige Syntax lauten? :confused:

_________________
gert_mue
Linnea
Mitglied

Benutzerprofil
Anmeldungsdatum: 03.06.2004
Beiträge: 1596
Beitrag Linnea Mitglied 19:24:16 08.02.2010   Titel:              Zitieren

versuch mal:
C/C++ Code:
//soll ans Ende des Dokumentes gehen
vSelections.OleProcedure("EndKey", "6");     // 6 == wdStory
//soll Seitenumbruch einfügen

vSelections.OleProcedure("InsertBreak", 7);  // 7 == wdPageBreak
C/C++ Code:
//soll ans Ende des Dokumentes gehen
vSelections.OleProcedure("EndKey", "6"); // 6 == wdStory
//soll Seitenumbruch einfügen

vSelections.OleProcedure("InsertBreak", 7); // 7 == wdPageBreak
C/C++ Code:
//soll ans Ende des Dokumentes gehen
vSelections.OleProcedure("EndKey", "6");     // 6 == wdStory
//soll Seitenumbruch einfügen

vSelections.OleProcedure("InsertBreak", 7);  // 7 == wdPageBreak

Quellen sind französische und russische Seiten ;)

_________________
Zitat von Joe_M. "... DAS WORT LINNEAS: Und es stand geschrieben in der Hilfe zum BCB soll er suchen, bis er fündig ward, oder dem Greisentum anheim fiel."
gert_mue
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 40
Beitrag gert_mue Mitglied 19:46:12 08.02.2010   Titel:              Zitieren

Vielen Dank, das hat funktioniert!

Deine Quellen scheinen zwar etwas speziell zu sein aber sehr hilfreich.

Das Forum hier ist wirklich Klasse.

Gruß :)

_________________
gert_mue
Linnea
Mitglied

Benutzerprofil
Anmeldungsdatum: 03.06.2004
Beiträge: 1596
Beitrag Linnea Mitglied 22:29:20 08.02.2010   Titel:              Zitieren

die Quellen kommen alle aus Google und ich bin immer froh, daß der Quellcode einheitlich in Englisch ist, da ich weder Russisch, Französisch noch Japanisch kann :D

_________________
Zitat von Joe_M. "... DAS WORT LINNEAS: Und es stand geschrieben in der Hilfe zum BCB soll er suchen, bis er fündig ward, oder dem Greisentum anheim fiel."
C/C++ Forum :: VCL (C++ Builder) ::  Word Dokumente Zusammenführen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.