Einzelnen Beitrag anzeigen

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, 11: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 11:53 Uhr)
  Mit Zitat antworten Zitat