AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SaveAs bei Word-Automation speichert nicht?

Ein Thema von Angel4585 · begonnen am 15. Okt 2012 · letzter Beitrag vom 15. Okt 2012
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

SaveAs bei Word-Automation speichert nicht?

  Alt 15. Okt 2012, 10:31
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:
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;
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.
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...
Martin Weber
Ich bin ein Rüsselmops

Geändert von Angel4585 (15. Okt 2012 um 10:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: SaveAs bei Word-Automation speichert nicht?

  Alt 15. Okt 2012, 11:18
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

AW: SaveAs bei Word-Automation speichert nicht?

  Alt 15. Okt 2012, 11:29
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.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

AW: SaveAs bei Word-Automation speichert nicht?

  Alt 15. Okt 2012, 12:06
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: SaveAs bei Word-Automation speichert nicht?

  Alt 15. Okt 2012, 12:41
[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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 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