Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Unbekanntes Dateiformat verarbeiten (https://www.delphipraxis.net/66251-unbekanntes-dateiformat-verarbeiten.html)

Brainstalker 27. Mär 2006 12:19


Unbekanntes Dateiformat verarbeiten
 
Hallo

Ich möchte gern ein unbekanntes Dateiformat verarbeiten. Entweder einlesen oder konvertieren usw. Ich hab schon im Forum gesucht aber nix brauchbares gefunden. Es wurde immer nur der Header der Datei angesprochen. Wenn die Datei nun aber keinen hat bzw. keinen richtigen is das ein bisschen blöd. Ich glaube die Datei ist einfach nur gestreamt.
Ich hab mir die Datei bereits in einem Hex-Editor angesehen, kann aber nicht so sehr viel damit anfangen. Wie kann ich von der Hex-Ansicht auf den Aufbau der Datei schließen um diese in meinem Programm zu laden. Also "0D 0A" scheint ein Zeilenumbruch zu sein.
Aber wie komm ich da weiter? Kann ich das überhaupt aus der Hex-Ansicht ableiten? Würde mich über Hinweise freuen. Würde mich nämlich mit dem Thema gern mehr beschäftigen.

Bernhard Geyer 27. Mär 2006 12:24

Re: Unbekanntes Dateiformat verarbeiten
 
Einen algemeinen Importer wird es nicht geben den selbst 0D 0A ist nicht in allen Fällen ein Zeilenumbruch. Auch in Bildern kann diese Byte-Folte vorkommen. Wenn du die Ersteller-Applikation zur verfügung hast kannst Du versuchen ausgehend von einem "leeren" gespeicherten Dokument nach und nach kleine Editieraktionen durchzuführen und dann mit einem Hex-Editor die unterschiede anzeigen lassen. Pech hast Du natürlich wenn das Format zusätzlich verschlüsselt ist.

DerDan 27. Mär 2006 12:27

Re: Unbekanntes Dateiformat verarbeiten
 
Ich stimme da dem Bernhard voll zu,

wenn du schon nicht weist, wie es drin steht solltest wenigstens wissen WAS drinsteht.
Dann irgendwie überlegen auf welche art es in der Datei stehen könnte.


Dazu ist es schon hilfreich die Datei erstmal in Hex zu sehen.

mfg DerDan

Brainstalker 27. Mär 2006 12:41

Re: Unbekanntes Dateiformat verarbeiten
 
Also ich hab die Ersteller-Sofware da. und ich weiß auch was in der Datei drinsteht, sie ist also nicht verschlüsselt. Man kann auch lesen was in der Datei steht, man kann sie aber nicht direkt einlesen, weil sie warscheinlich als Stream gespeichert wurde.

Also ich gehe mal davon aus das es nur Strings sind. Ich denke mal wenn es als Stream gespeichert ist wird vor dem String die Länge stehen. So stell ich es mir auf jeden Fall vor. Nur wie würde dann der Ansatz in Delphi aussehen?

NormanNG 27. Mär 2006 14:21

Re: Unbekanntes Dateiformat verarbeiten
 
Hi,

häng' doch einfach mal ein Ausschnitt der Daten an. Dann kann man mal drüberschauen...

Brainstalker 27. Mär 2006 15:13

Re: Unbekanntes Dateiformat verarbeiten
 
Ok hier mal ein kleiner Ausschnitt:

Code:
   3.3.3.46   <  C:\Dokumente und Einstellungen\Michael\Eigene Dateien\55.jpg          55.jpg¨4 ´  &#8222;                                                                                                                                                                                                          =  C:\Dokumente und Einstellungen\Michael\Eigene Dateien\123.jpg          123.jpgì&#8221; L  &#381;                                                                                                                                                                                                          E  C:\Dokumente und Einstellungen\Michael\Eigene Dateien\248527_4481.gif          248527_4481.gifÎ&#8211; Æ                                                                                                                                                                                                                S  C:\Dokumente und Einstellungen\Michael\Eigene Dateien\20040730-best-toilet-ever.jpg          20040730-best-toilet-ever.jpgPi +                                                                                                                                                                                                               Ihr Galerietitel   Ihre Galeriebeschreibung      3   6       Deutsch                                                                                                      95   160   120     33     95   450   600     100 
   (Kein Rahmen)   12               20   20   Tahoma                    
Ich füg hier auch demnächst nochmal nen Ausschnitt in Hex an. Muss das bloß irgendwie kopieren.

Luckie 27. Mär 2006 15:20

Re: Unbekanntes Dateiformat verarbeiten
 
Na, das sieht doch fast nach eine typisierten datei aus. Du musst nur noch rausfinden wie der Record aufgebaut ist, welchen datentyp die Felder haben und wie groß sie sind, wenn es sich um Strings handelt. Sollte eiegntlich relativ einfach möglich sein.

NormanNG 27. Mär 2006 15:58

Re: Unbekanntes Dateiformat verarbeiten
 
Hi,

schreib doch einfach mal ein kleines Testprogramm.

darin zuerst eine Rumpf-Prozedur in der Art:

Delphi-Quellcode:
procedure NextRec;
begin
  // einlesen was man kennt
  ...
  // die eingelesenen daten anzeigen; in einer listbox z.b.
  ...
end;
Im FormCreate kannst du dann einen Stream öffnen und ggf. die Daten auslesen, die nicht in allen Records enthalten sind - also an den Anfang des ersten Records gehen (sieht aus wie eine Versionsnummer davor?).

Dann einen Button aufs Formular und im OnClick so was wie die NextRec oben aufrufen. Dann kannst du Schritt für Schritt dort ergänzen, was du von der Recordstruktur kennst. Und wenn alles stimmt, sollte die komplette Datei schrittweise durchlaufen und angezeigt werden können.
[edit] sorry, immer diese Schreibfehler :oops: [/edit]

DerDan 27. Mär 2006 16:25

Re: Unbekanntes Dateiformat verarbeiten
 
Was für eine Extension hat die unbekannte Datei und welche SW schreibt die unbekannte Datei?

durch diese Info kann man oft im INet auch schon viel finden...



mfg


DerDan


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