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 2 von 2     12   
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#11

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

  Alt 7. Mär 2005, 09:30
Ich würde dir empfehlen auch den Dateinamen oder zumindestens die Dateierweiterung im Archiv zu speichern. Damit umgehst du eine Menge Probleme. Du kannst nicht jeden Dateitypen exakt bestimmen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Brainshock

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

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

  Alt 8. Mär 2005, 08:09
Na hi,

@jim_raynor:

Danke, für deinen Hinweis, aber das hilft mir an dieser Stelle auch nicht weiter. Zumal ich der Meinung bin, dass es wenigstens bei MS Office Dateien möglich sein sollte diese aus irgendeiner Kennung zu bestimmen (es ging ja auch mit den alten Versionen).

(So kommt man natürlich auch auf eine hohe Post-Zahl. )

@all:

Hat sonst noch jemand irgendwelche Hinweise, wie man plausibel die MS Office Dateien bestimmen kann, also nix mit Dateiendung?

mfg
Matthias
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#13

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

  Alt 8. Mär 2005, 08:18
Du könntest (jetzt mal für Word als Bsp.) eine leere Datei machen und speichern, und anschließend eine Datei mit dem Inhalt "Text" machen und speichern. Nun kannst du die Dateien vergleichen, und Bereiche bestimmen, die immer gleich sind (die müsste es geben).

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#14

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

  Alt 8. Mär 2005, 13:20
Jede Datei hat doch einen Dateiheader in der drinne steht um was für einen Typ es sich handelt. Ein Beispiel ist "GIF89". Damit erkennt man, dass es sich um eine GIF-Datei handelt. So etwas müsste doch auch mit Word-Dateien gehen, wenn man den Header kennt.

André
André
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#15

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

  Alt 8. Mär 2005, 14:03
Hallo,

Man koennte auch mittels Bei Google suchenStgOpenStorage usw. auslesen, ob es sich um eine Word
datei Handelt.
Thomas
  Mit Zitat antworten Zitat
Brainshock

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

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

  Alt 8. Mär 2005, 15:20
Mhhh,

das mit dem Dateiheader ist mir schon klar, nur ist der bei allen MS Office Dateiarten gleich ( in den neuen Versionen). Das hilft mir also nicht besonders weiter und wäre nur eine sekundäre Kontrollmöglichkeit.

@toms: Keine Ahnung was "StgOpenStorage" genau ist, aber ich schaue es mir mal an.

Mfg
Matthias
Matthias
  Mit Zitat antworten Zitat
scp

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

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

  Alt 8. Mär 2005, 16:32
Habe eine Gemeinsamkeit der Dateitypen gefunden, die Lösung liegt im Footer nicht im Header:
Am Ende beider Typen befindet sich ein sogenannter Root Entry, der auch passenderweise immer mit "R.o.o.t. .E.n.t.r.y." beginnt (die Punkte stehen hier für nullwertige Bytes).
Bei Excel ist dieser 512 Bytes gross, bei Word 2048 Bytes.
Bei beiden Typen kommt 80 Bytes nach "R.o.o.t. .E.n.t.r.y." die CLSID. Bei Word ist dies
Code:
06 09 02 00  00 00  00 00  C0 00  00 00 00 00 00 46
{00020906-0000-0000-C000-000000000046}
Microsoft Word-Dokument
un bei Excel
Code:
00 02 08 20  00 00  00 00  C0 00  00 00 00 00 00 46
{00020820-0000-0000-C000-000000000046}
Microsoft Excel-Arbeitsblatt
PS: Getestet mit Office 97 und XP
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#18

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

  Alt 8. Mär 2005, 17:25
Hallo,
da es nach wie vor bei den Office Dateien um sog. Compound Documents handelt würde ich versuchen über das IStorage Interface darauf zu zugreifen.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:51 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