word-dateien auslesen (win32::ole)

Von: , Frage gestellt am Mo, 1. Jul 2002

hallo zusammen,
hier mal was für knobel-freunde ;-) ich versuche gerade, den inhalt von ms-word-dateien mit Win32::OLE auszulesen. klappt natürlich nicht so recht.
ein prob dabei ist, dass ich bislang nirgendwo eine erläuterung auftreiben konnte, wie das korrekter weise zu bewerkstelligen wäre. möglich ist das mit sicherheit, aber die perl-welt scheint sich hier nur mit excel-dateien zu beschäftigen. also habe ich mal ausgehend von einem script aus einem buch geraten, wie das für word-dateien sein müsste:

#!/usr/bin/perl

use Win32::OLE;
use strict;
my ($word, $file, $dokument, %inhalt, $inhalt, $key);

$word=Win32::OLE->new('Word.Application', 'Quit')
or die ("Kein Objekt: ", Win32::OLE->LastError());

$file="test.doc";

$dokument=$word->Documents->Open($file)
or die ("Kann Dokument nicht öffnen: ", Win32::OLE->LastError());
%inhalt=$dokument;
$dokument->close;

foreach $schluessel (keys %inhalt)
{
printf ("%15s: %s\n", $schluessel, $inhalt{$key});
}

wie ich ausgerechnet auf einen hash komme? ;-)
die ausführung dieses scripts liefert folgende anzeige:

Win32::OLE=HASH(0x178148c)

die erscheint übrigens auch, wenn ich nur doof schreibe:

print "$dokument";

obwohl ich ja eigentlich recht gespannt bin auf diesen hash ;-) denke ich mir, dass das nicht im ernst das ergebnis dieser aktion sein kann.
hat wer von euch zufällig schon mal was ähnliches versucht und kann mir sagen, was hier zu tun ist?

gespannte grüße
bernd

p.s.: fehlermeldung gibt es hier keine.

9 Antworten zu dieser Frage

    • Antwort von nach 3 Tagen 0 hilfreich
      nochwas

      im Endeffekt ist das Win32::OLE ja ein Wiondows Modul. Also vielleicht suchst Du mal bei Microsoft auf der Webseite nach den Methoden und der Handhabung dieser Methoden für das Win32::OLE Modul?

      • Antwort von nach 3 Tagen 0 hilfreich
        gute idee

        hey martin,
        das ist wohl als letzter notnagel sicher vernünftig, ich hab inzwischen bei activestate noch was gefunden. mal sehen, ob das funkt.
        kann mir gar nicht so recht vorstellen, dass das echt so selten benutzt wird...
        deine links konnte ich noch nicht checken, werd ich mir am WE mal vornehmen.

        gruß & dank
        bernd

    • Antwort von nach 4 Tagen 0 hilfreich
      tjaa

      hey martin,
      die links haben ein klein wenig weiter geholfen, immerhin weiß ich jetzt, dass der hash wohl aus den visual-basic-methoden/properties besteht. deswegen hab ich mal dort gepostet...
      mal sehen, ob mir da wer helfen kann.

      gruß & dank
      bernd

      • Antwort von nach 4 Tagen 0 hilfreich
        Re: tjaa

        hey martin,
        die links haben ein klein wenig weiter geholfen, immerhin weiß
        ich jetzt, dass der hash wohl aus den
        visual-basic-methoden/properties besteht. deswegen hab ich mal
        dort gepostet...
        mal sehen, ob mir da wer helfen kann.
        jo kein Problem :) Hab ja auch nur in Google gesucht ;)

        bye,
        Maddin

    • Antwort von nach 6 Tagen 0 hilfreich
      hab es- kein witz

      hi martin, mhh
      interessante Frage
      diese interessante frage kann ich jetzt beantworten:
      das win32::ole-objekt liefert für word einen hash mit (gut festhalten) sage und schreibe 1969 (!) keys.

      wat et nich allet jibt...

      greetings
      bernd

      • Antwort von nach 7 Tagen 0 hilfreich
        Re: hab es- kein witz

        diese interessante frage kann ich jetzt beantworten:
        das win32::ole-objekt liefert für word einen hash mit (gut
        festhalten) sage und schreibe 1969 (!) keys.
        hehe .. geht ja noch :) Da steht bestimmt jeder "scheiss" drinn :) MS eben .. aber 1969 Key erstmal sortieren (also so rein gedanklich mein ich... was brauch ich und wofür etc..) dürfte heftig werden :)
        Gibt es denn eine Liste mit den beschriebenen Inhalten? wat et nich allet jibt...
        es gibt bestimmt noch viel mehr ;)
        greetings
        bernd
        Gruß,
        Martin

        • Antwort von nach 8 Tagen 0 hilfreich
          das objekt

          hallo! hehe .. geht ja noch :) Da steht bestimmt jeder "scheiss"
          drinn :)
          yo: drin sind wohl sämtliche (VB) methoden, die man auf ein word-document anwenden kann. auch wenn's erstmal wimmelig ist, hat das aber wohl den vorteil, damit durchaus präzise arbeiten zu können. MS eben .. aber 1969 Key erstmal sortieren (also so
          rein gedanklich mein ich... was brauch ich und wofür etc..)
          dürfte heftig werden :)
          schon richtig- ansonsten s.o. Gibt es denn eine Liste mit den beschriebenen Inhalten?
          ich habe bei activestate ein kleines script zum thema gefunden, dass den hash ausspuckt:

          use Win32::OLE::Const;
          my $wd = Win32::OLE::Const->Load("Microsoft Word 8.0 Object Library");

          open (HASH, ">liste.txt");

          foreach my $key (sort keys %$wd)
          {
          printf HASH "$key = %s\n", $wd->{$key};
          }
          close HASH;

          kannst du ja mal selber sehen...

          greetings
          bernd

          • Antwort von nach 10 Tagen 0 hilfreich
            Re: das objekt

            ich habe bei activestate ein kleines script zum thema
            gefunden, dass den hash ausspuckt:

            use Win32::OLE::Const;
            my $wd = Win32::OLE::Const->Load("Microsoft Word 8.0 Object
            Library");

            open (HASH, ">liste.txt");

            foreach my $key (sort keys %$wd)
            {
            printf HASH "$key = %s\n", $wd->{$key};
            }
            close HASH;

            kannst du ja mal selber sehen...
            Jo prima danke! Ich werds mir mal angucken :) Ich brauchs zwar nicht oder wüsst auch nicht, wofür ich es brauchen könnte, aber man kann ja nie wissen ;) Wer weiss was ich später mal brauche

            Gruß,
            Martin

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!