![]() |
SaveAs bei Word-Automation speichert nicht?
Guten Tag!
ich hab folgendes Problem: Ich habe x RTF/Word-Dokumente in einem Ordner und möchte jedes davon öffnen und mit SaveAs wieder speichern. Mein Code sieht folgendemaßen aus:
Delphi-Quellcode:
Es wird alles ausgeführt, Dokumente werden geöffent bzw die tempdateien dazu angelegt udn wieder entfernt. Aber das Änderungsdatum ändert sich nicht. Also gehe ich davon aus, dass die SaveAs Funktion nicht tut was sie soll.
procedure OpenSaveDocs(AList : TStringList);
var i : integer; Word : Variant; varFalse : OleVariant; begin // Word starten try Screen.Cursor := crHourglass; try Word := CreateOleObject('Word.Application'); Word.NormalTemplate.Saved := true; finally Screen.Cursor := crDefault; end; except raise ECantStartWordException.Create('Word konnte nicht gestartet werden.'); end; try for i := 0 to AList.Count - 1 do try varFalse := false; //Dokument öffnen und speichern Word.Documents.Open(AList[i], varFalse, varFalse, varFalse, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, varFalse); Word.ActiveDocument.SaveAs( AList[i] , 6, EmptyParam, EmptyParam, varFalse , EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam ); Word.ActiveDocument.Close; except on e:exception do begin ShowMessage(e.Message); end; end; finally Word.Quit; end; Nein ich mache das nicht um das Datum zu ändern. Ich habe in der Registry das Flag '0' gesetzt, wodurch Bilder zusätzlich als Kopie/Metainformation abgespeichert werden und RTF Dokumente sehr groß werden. nun möchte ich nicht 10.000 Dokumente von Hand durchlaufen und öffnen und speichern und schreibe deswegen diese kleine Funktion. Leider weis ich nicht was genau ich hier falsch mache. Kann mir jemand helfen und einen Tipp geben? Edit: Das Problem besteht auch nur beim überspeichern der Dateien, wenn ich die Dateien unter einem anderen Namen speichere klappt das. seltsam, dabei gibts doch kein overwrite-flag oder sowas... |
AW: SaveAs bei Word-Automation speichert nicht?
Sieht so aus als gälte auch hier "it's not a bug, it's a feature".
Zumindestens wenn man Word mit einem bestehenden Dokument aufruft, und ohne Änderung speichert (unter)wird das Datum nicht geändert. versuch doch an das Ende ein Leerzeichen zu schreiben und dies im Anschluß wieder zu löschen, und dann speichern. Gruß K-H |
AW: SaveAs bei Word-Automation speichert nicht?
Nein, es wird garnicht gespeichert. Nicht nur das Datum nicht geändert.
Die Datei beinhaltet ein Bild und wurde vor setzen des Registry-Flags gespeichert, dadurch ist die 6MB groß. Wenn nach setzen des Flags erneut gespeichert wird, ist sie nurnoch 2 MB groß. Bei der Methode von oben hat die Datei danach immernoch 6 MB. Speichere ich die Datei unter einem anderen Namen hat sie 2MB. Ich werde es jetzt vorerst so lösen, dass ich die Datei unter nem anderen Namen speichere, da Original lösche und die Kopie umbenenne in dern Originalnamen. |
AW: SaveAs bei Word-Automation speichert nicht?
Dateien in Word werden erst mit einem neuen Datum versehen, wenn eine Änderung in dem Dokument erfolgt ist. Gerade eben manuell getestet mit Word 2010.
|
AW: SaveAs bei Word-Automation speichert nicht?
[OT]
Es geht doch nichts über intelligente Programme, die genau wissen was der Benutzer will, und genau das auch immer tun[/OT] Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz