AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mit Word eine *.rtf öffnen und abspeichern unter *.doc
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Word eine *.rtf öffnen und abspeichern unter *.doc

Ein Thema von binio · begonnen am 17. Aug 2006 · letzter Beitrag vom 17. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#1

Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 09:33
Hallo möchte in Delphi eine test.rtf dokument durch Word öffnen dann soll die standart konvertierung gewählt werden und dieses als test.doc gespeichert werden.
Das Ganze soll passieren wenn man ein Button konvert drückt.
Welche Datei geöffnet werden soll steht in ein Editfeld und wo hin sie gespeichert werden soll auch.
Bis jetzt hab ich das raus bekommen:(nicht viel)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
v:OleVariant;
Result:String;
begin
  v:=CreateOleObject('word.application');
  try
    Result:=v.Options.DefaultFilePath[8];
  finally
    v.Quit;
    Application.MessageBox(PChar(Result), 'MessageBox', MB_ICONWARNING or MB_OK);
  end;
end;

end.
Ich danke schonmal im vorraus für jede Hilfe

Robert
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 09:45
Für so Sachen geh ich immer hin: Starte Word, starte eine Makroaufzeichnung und führe deine Operationen aus, spriche RTF laden und wieder als DOC abspeichern. Dann kuckst Du dir den VBA Code an und übersetzt das nach Delphi.
  Mit Zitat antworten Zitat
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 11:01
Super Idee auch für die Zukunft danke:
Hab das mal gemacht und sowas rausbekommen:

Delphi-Quellcode:
Sub Makro1()
'
' Makro1 Makro
' Makro aufgezeichnet am 17.08.2006 von Robert Slowikowski
'
    ChangeFileOpenDirectory "C:\"
    Documents.Open FileName:="test.rtf", ConfirmConversions:=False, ReadOnly:= _
        False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
        "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
        Format:=wdOpenFormatAuto
    ActiveDocument.SaveAs FileName:="test.doc", FileFormat:=wdFormatText, _
        LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
        :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False
End Sub
ich denke man kann vieles weglassen und daraus ist dann das geworden:
Delphi-Quellcode:
Sub Makro1()
'
' Makro1 Makro
' Makro aufgezeichnet am 17.08.2006 von Robert Slowikowski
'
    Documents.Open FileName:="c:\test.rtf", ConfirmConversions:=False, Format:=wdOpenFormatAuto
    ActiveDocument.SaveAs FileName:="c:\test.doc", FileFormat:=wdFormatText, AddToRecentFiles:=True
End Sub
Meine Frage nun ... wie geht es weiter ?
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 11:10
Zitat von binio:
Meine Frage nun ... wie geht es weiter ?
Importier Dir als allererstes die Typbibliothek (Projekt->Typbibliothek importieren)... Aus der langen Liste wählst Du dann "Microsoft Word 11.0 Object Library (Version 8.3)" und dann "Unit anlegen". Das erzeugt Dir eine Unit namens Word_TLB. Darin enthalten sind alle Funktionen und Konstanten, die Du benötigts um über OLE das MS Word zu steuern.

Folgender Delphi Code sollte dann den VBA übersetzen:

Delphi-Quellcode:
uses word_tlb, comobj ;

procedure LoadAndSave ;
var
  V : variant ;
begin
     V := GetActiveOleObject('Word.Application');
     V.Documents.open (FileName:='c:\test.rtf', ConfirmConversions:=False, Format:=wdOpenFormatAuto) ;
     V.ActiveDocument.SaveAs (FileName:='c:\test.doc', FileFormat:=wdFormatText, AddToRecentFiles:=True) ;
end ;
  Mit Zitat antworten Zitat
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 11:36
Das mit den Importieren gestalltet sich schwer ;(

Ich hab nur die Microsoft Word 9.0 Object Libarty(Version 8.1) zu importieren.
Wenn ich dann auf Weiter klicke kommt eine Fehlermeldung

Zitat:
"Cannot create file"c:\programme\delphi10lite\Imports\Office_TLB. dcr".System kann den angegebenen Pfad nicht finden"
Ist mein Office zu alt für das neue Delphi 10 ?
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 11:38
Zitat:
Ist mein Office zu alt für das neue Delphi 10 ?
Nein.

Existiert das obige Verzeichnis?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 11:42
nein:

Unter c:\Programme\delphi10lite\

existieren nur:
Bin
HelpD7
lib
License
Obirepos
QualityCentral
Schemas
source

Sollte ich etwas den Ordner mal anlegen ?
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 11:45
Zitat:
Sollte ich etwas den Ordner mal anlegen ?
Ein Versuch wärs wert.

BTW. Was ist Delphi 10 lite?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 11:50
Hehe manche dinge sind soch so einfach ;)
Es hat nun geklappt :)
Danke vielmals.
Jelly und mkinzler


Meine Delphi Version ist:
Borland® Delphi® for Microsoft® Windows™ Version 10.0.2166.28377 Update 1 Copyright © 2005 Borland® Software Corporation. All Rights Reserved.
Arbeite an Der Fern-Uni-Hagen als Softwareentwickler mit Delphi.
Kann sein das ich deswegen etwas neuere Software besitze.
Ich finde es auf jedenfall besser als mein altes Delphi 7 was ich vorher hatte.


Ok danke nochmal für die Hilfe
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Mit Word eine *.rtf öffnen und abspeichern unter *.doc

  Alt 17. Aug 2006, 12:03
verda..t hab eigentlich nichts geändert nur das es auch wieder geschlossen werden soll und es kommt nun:

Project rtfzudoc.exe raised exection class EOleSysError with message' Vorgang nicht verfügbar'

Dan kann ich Break , continue und help drücken. Egal was ich davon drücke mein Delphi und die Exe stürtzt ab ;(



Woran kann das liegen ?
Delphi-Quellcode:

unit rtfzudoc;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, word_tlb;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
V:OleVariant;
Result:String;
begin
     V := GetActiveOleObject('Word.Application');
     V.Documents.open (FileName:='c:\test.rtf', ConfirmConversions:=False, Format:=wdOpenFormatAuto) ;
     V.ActiveDocument.SaveAs (FileName:='c:\test2.doc', FileFormat:=wdFormatText, AddToRecentFiles:=True) ;
end;

end.
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:16 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