Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi OpenDocument mit Delphi verarbeiten (https://www.delphipraxis.net/50742-opendocument-mit-delphi-verarbeiten.html)

benst 30. Jul 2005 21:22


OpenDocument mit Delphi verarbeiten
 
Hallo zusammen,
kann mir jemand sagen, ob es schon Informationen oder Projekte zur Verarbeitung von "OpenDocument"-Dokumenten (neuer Dateistandard de.wikipedia.org/wiki/OpenDocument) mit Delphi gibt?
Mir schwebt vor, eine OpenDocument-Tabelle in z.B. ein Stringgrid zu laden.
Des weiteren, gibt es schon eine ungefähr Zeitangabe, wie lange OpenOffice 2 noch in der Beta-Phase ist?
Vielen Dank für jede Antwort und Hilfe. :bounce2:
Gruß
Ben
P.S.: Delphi 5 Standard, Win XP

aliB 16. Aug 2005 12:25

Re: OpenDocument mit Delphi verarbeiten
 
So weit ich weiß, ist das OpenDocument-Dokument eine gezipte Datei die alles enthält was das Dokument verwendet.
(Styles, Bilder, ... und natürlich den Inhalt selber)
Die Datei die den Text bereitstellt nennt sich content.xml.
Theoretisch müste man also nur die odt Datei entpacken und die darin enthaltene content.xml auslesen.
Habs aber noch nie getestet da ich noch kein Programm habe welches ein OpenDocument erzeugen kann.
Das Thema interessiert mich auch brennend :)

benst 16. Aug 2005 14:44

Re: OpenDocument mit Delphi verarbeiten
 
Ja, so weit war ich auch schon. In der content.xml konnte ich auch meine Inhalte finden. Doch habe ich noch nie etwas mit XML gemacht und ich dachte vielleicht, dass es schon einige andere Projekte dafür gibt.
Gruß Ben
P.S.: Falls es noch nichts für Delphi geben sollte, so würden mich auch Projekte mit C interessieren.

aliB 17. Aug 2005 08:08

Re: OpenDocument mit Delphi verarbeiten
 
Also unter Delphi gibt es sogar eine vorgefertigte Komponente!
TXMLDocument findest du in der Rubrick Internet
Versuch erstmal eine einfache xml Datei zu öffnen, Attribute lesen / löschen / hinzufügen,
solltest du dann nicht weiter kommen, kannst du ja die Fragen hier stellen :)
Ansonsten findest du hier ein gutes Tutorial.

Thanatos81 17. Aug 2005 08:22

Re: OpenDocument mit Delphi verarbeiten
 
Zitat:

Zitat von Mithrandir
Habs aber noch nie getestet da ich noch kein Programm habe welches ein OpenDocument erzeugen kann.
Das Thema interessiert mich auch brennend :)

Dann besorg dir einfach die Beta von OpenOffice.org 2, oder falls du das nicht möchtest sag Bescheid, dann schick ich dir ein OpenDocument aus eben jener Office-Suite.

aliB 17. Aug 2005 08:39

Re: OpenDocument mit Delphi verarbeiten
 
Zitat:

Dann besorg dir einfach die Beta von OpenOffice.org 2
das ist der Punkt, beta mag i net und OpenOffice 1.1.5 ist noch nich raus.

Zitat:

oder falls du das nicht möchtest sag Bescheid, dann schick ich dir ein OpenDocument aus eben jener Office-Suite.
Bescheid :)

Thanatos81 17. Aug 2005 08:42

Re: OpenDocument mit Delphi verarbeiten
 
Liste der Anhänge anzeigen (Anzahl: 1)
OK, schickste mir ne PM mit deiner E-Mail-Addy?

//Edit
Ach ja, man hier ja auch was anhängen :oops: Habs mal gezippt, da ich .odt nicht in der Liste der erlaubten Dateierweiterungen gefunden habe.

aliB 17. Aug 2005 09:08

Re: OpenDocument mit Delphi verarbeiten
 
Besten Dank, werd's gleich ausprobieren.

Thanatos81 17. Aug 2005 09:18

Re: OpenDocument mit Delphi verarbeiten
 
Keine Ursache, Gandalf :-D . Hab verschiedene Formatierungen und Schriften sowie ein Bild mit eingebaut, damit so richtig testen kannst :wink:

aliB 17. Aug 2005 11:17

Re: OpenDocument mit Delphi verarbeiten
 
So, hab jetzt doch OpenOffice installiert, brauchte noch ein Tabellendokument.

@benst
Hier mal ein Beispielcode der den gesamten Datenteil des OD iteriert und die NodeCaption anzeigt.
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xmldom, XMLIntf, StdCtrls, msxmldom, XMLDoc;

type
  TODTestForm = class(TForm)
    XMLDocument1: TXMLDocument;
    btnIterateXML: TButton;
    procedure btnIterateXMLClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    function IterateXMLNode(AXMLNode: IXMLNode): string;
  end;

function TODTestForm.IterateXMLNode(AXMLNode: IXMLNode): string;
begin
  ShowMessage(AXMLNode.NodeName);
  if AXMLNode.HasChildNodes then IterateXMLNode(AXMLNode.ChildNodes.First);
  if AXMLNode.NextSibling <> nil then IterateXMLNOde(AXmlNode.NextSibling);
end;

procedure TODTestForm.btnIterateXMLClick(Sender: TObject);
var
  rootNode: IXMLNode;
  childNode: IXMLNode;
begin
  rootNode := XMLDocument1.DocumentElement;
  childNode := rootNode.ChildNodes.FindNode('office:body'); // wir wollen uns nur den Datenteil anschauen
  // der Datenteil eines Tabellendokuments enthält !alle! Tabellen und deren Werte
  // rekursive Methode!
  IterateXMLNode(childNode);
end;

benst 19. Aug 2005 13:03

MS XML4 - "CLASS_DOMDocument40" - was ist falsch??
 
Hi,
wollte jetzt mal ein wenig mit dem empfohlenen Tutorial rumprobieren. Ich habe MS XML4 installiert, aber da kommen gleich Probleme auf.
Ich wollte erst einmal die Funktion ausprobieren, die prüft, ob MS XML4 installiert ist.
Delphi-Quellcode:
function DoesXMLExist: boolean;
var
  reg : TRegistry;
  s  : string;
begin
  Result := false;

  reg   := TRegistry.Create(KEY_READ);
  if(reg <> nil) then
    with reg do try
      RootKey := HKEY_CLASSES_ROOT;

      if(OpenKey('CLSID\' + GuidToString(CLASS_DOMDocument40) + '\InProcServer32',false)) then
      try
        s     := ReadString('');
        Result := (s <> '') and (fileexists(s));
      finally
        CloseKey;
      end;
    finally
      Free;
    end;
end;
Aber er meint "CLASS_DOMDocument40" sei ein undefinierter Bezeichner.
Was mach ich falsch.
Ich verwende Delphi 5 Standard.
Gruß Ben

aliB 23. Sep 2005 08:19

Re: OpenDocument mit Delphi verarbeiten
 
Ist schon 'n Weilchen her, aber trotzdem.
Jeder sollte eine Antwort bekommen :)
Ich hab noch nie überprüft ob MS XML 4 installiert ist :oops:
Zitat:

Zitat von benst
Aber er meint "CLASS_DOMDocument40" sei ein undefinierter Bezeichner.
Was mach ich falsch.

Versuch mal MSXML4_TLB zu deinen uses Anweisungen hinzuzufügen.

Kannst zu diesem Thema was unter:
http://www.delphipraxis.net/internal...ct.php?t=10132
http://www.delphipraxis.net/viewtopi...t=534&start=15
finden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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