AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Microsoft Word Datei erkennen (nicht über Dateiendung)
Thema durchsuchen
Ansicht
Themen-Optionen

Microsoft Word Datei erkennen (nicht über Dateiendung)

Ein Thema von Brainshock · begonnen am 4. Mär 2005 · letzter Beitrag vom 8. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#1

Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 4. Mär 2005, 12:14
Hi Leute,

hat von euch jemand eine Idee, wie man erkennt ob es sich bei einer Datei um eine Worddatei handelt und das nicht über die Dateiendung. Mein Problem liegt nämlich darin, dass ich (wie sich vermuten läßt) eine Datei habe deren Endung nicht .doc ist und ich die richtige Endung setzen will.

Achso, ich habe auch schon im Forum gesucht und auch mit Hilfe von Suchmaschinen, aber leider nix funktionierendes gefunden (so z.B. auch SHGetFileInfo, ...).

Mfg
Matthias
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 4. Mär 2005, 12:38
scahu mal bei wotsit vorbei!
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

Registriert seit: 5. Nov 2004
Ort: Kirchheim
453 Beiträge
 
Delphi 7 Architect
 
#3

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 4. Mär 2005, 12:39
Hi,

Zitat von Brainshock:
Mein Problem liegt nämlich darin, dass ich (wie sich vermuten läßt) eine Datei habe deren Endung nicht .doc ist und ich die richtige Endung setzen will.
Welche Endung hat denn jetzt die Datei, wenn nicht *.doc?
Wäre vielleicht hilfreich.

MfG Marc
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#4

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 4. Mär 2005, 13:14
@Chegga:

Also die Dateiendung ist jetzt .obj, was aber eigentlich nicht weiterhilft und selbst vergeben ist.

@All:

Noch ein paar Erläuterungen meinerseits zu diesem Problem:

1. Ausgangspunkt ist ein Programm, welches Dateien archiviert und dabei die Einzeldateien zusammenfasst, d.h. eine große Datei daraus macht ( aus Performance und so ). Der Dateiname wird hierbei nicht mitgespeichert.

2. Beim herausholen der Dateien aus dem Archiv will ich nun aber den Dateityp (Endung) herausbekommen. Bei den meisten Dateiarten funktioniert das auch über ihre Kennung in der Datei, nur bei MS Office (Excel, Powerpoint, Word, ...) scheinbar nicht, da haben alle die gleiche Kennung. Eine Zuordnung der Dateiendung über eine Kennung ist da irgendwie nicht möglich.

Mfg
Matthias
Matthias
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 4. Mär 2005, 20:39
Hi Brainshock,

die Kennung der Datein kannst du dir über den(die?) CLSID holen.
MS speichert in jeder Office-Datei die CLSID des Erstellungsprogramms,
daher weiss die Explorer.exe bzw. das OS welche Anwendung mit der Datei geöffnet werden muss.
Legt doch mal eine MS-Access Db mit OLE-Feldern an und speichere dort verschiedene Office-Dateien.
Beim Doppelklick auf einen Datensatz erscheint das zugehörige Programm mit der Datei.
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#6

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 4. Mär 2005, 23:10
mhhhhhhh,

CLSID hab ich in der Worddatei gesucht, aber nicht gefunden.
Da ich WinWord 2003 benutze habe ich in der Registry unter HKCR\Word.Application die
CLSID {000209FF-0000-0000-C000-000000000046} genommen.
Diese ID ist leider nicht mal ansatzweise in der vorher angelegten Worddatei.

@Alter Mann: Ich hoffe nur, ich habe dich da richtig verstanden mit der CLSID.

Idee?

Mfg
Matthias
Matthias
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#7

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 4. Mär 2005, 23:31
Die CLSIds werden wohl binär gespeichert, das heisst sie müssen auch in der Form ausgelesen werden, im Hex Editor sähe das z.B. so:
Code:
FF 09 02 00  00 00 00 00  46 00 00 00  00 00 00 C0
oder so:
Code:
FF 09 02 00  00 00 00 00  C0 00 00 00  00 00 00 46
aus, die Bytes sind verdreht (Stichwort Bei Google suchenBig Endian und Bei Google suchenLittle Endian), da sie als DWord, Word, Word, array[0..7] Of Byte gespeichert werden, wie genau sie angeordnet sind weis ich jetzt im Moment auch nicht.

PS: Ich bin mir auch nicht sicher, ob dies überhsupt die passende CLSID für diesen Zweck ist.
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#8

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 4. Mär 2005, 23:41
@scp:

Echt super (danke), ich habe zumindest einen Teil der CLSID so gefunden:

Code:
FF 09 02 00  00 00 00 00  46 00 00 00  00 00 00 C0
In der Datei steht zwar:

Code:
06 09 02 00  00 00 00 00  46 00 00 00  00 00 00 C0


mal sehen

Mfg
Matthias
Matthias
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#9

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 5. Mär 2005, 00:05
Das scheint die richtige zu sein. Es geht wohl nach dem Eintrag unter HKCR\AppID, siehe in der MS KB hier.

PS: Auch auf deutsch.
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#10

Re: Microsoft Word Datei erkennen (nicht über Dateiendung)

  Alt 7. Mär 2005, 08:01
Hallo,

gehen wir mal davon aus, dass man man die AppID bei Word benutzen kann um diese Dateiart zu erkennen. Zumindest habe ich hier den Wert:
Code:
00 02 09 06  00 00 00 00  C0 00 00 00  00 00 00 46
gefunden.

Nur geht das Problem natürlich bei Excel weiter, hier finde ich jedenfalls nicht die AppID in der Datei.
Ich habe hier nur die CLSID für ein Tabellenblatt gefunden und da weiss ich nicht, ob man das als eindeutiges Kriterium nutzen kann.


mfg
Matthias
Matthias
  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 09:42 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