Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Header einer datei auslesen. (https://www.delphipraxis.net/148684-header-einer-datei-auslesen.html)

danu1104 6. Mär 2010 07:16


Header einer datei auslesen.
 
Ich brauche eurer hilfe und zwar gehts um:

Header einer datei auslesen um mit der Header Information eine *.pak zu öffnen.

Frage 1:

Ist sowas möglich? (wenn ja siehe frage 2)

Frage 2:

Wenn ja wie fange ich an, ich kenn mich mit delphi eigenermasen aus aber es reicht für soetwas noch nicht aus.

Ich bedanke mich natürlich für jede hilfe / antwort die man kriegen kann :)


Edit:

habe es mit dieser variante versucht ich bekomme aber nur ausgaben womit ich nix anfangen kann

Delphi-Quellcode:
var
   OpenDialog : TOpenDialog;
   Headerfs:TfileStream;
begin
  OpenDialog := TOpenDialog.Create(Self);
  OpenDialog.Filter := 'PAK FILES|*.pak';
  if OpenDialog.Execute then
  begin
    Headerfs:=TfileStream.Create(ExtractFilePath(OpenDialog.Filename)+'data.hd',fmShareDenyWrite);
    PAK := TcymPak.Create(Self, OpenDialog.Filename);
    PAK.Header.LoadFromStream(Headerfs);
    PAK.Header.DirOffset:=????;
    renderlist;
  end;
  OpenDialog.Free;
end;

chaosben 6. Mär 2010 07:38

Re: Header einer datei auslesen.
 
Joa ... sowas geht mit Delphi.

Dein Problem scheint eher das Verständnis für das Format des Headers dieser Dateien zu sein.

Grundsätzlich hast du schon den richtigen Ansatz:
Mit einem Filestream die Datei öffnen. Danach musst du die Datei in sinnvollen Einheiten (bytes, integers, records) (siehe Spezifikation des pak-Dateiformats) auslesen und die Daten auswerten.

Kurz gesagt: Du musst genau wissen, wie der Header aufgebaut ist. Dann kommt die Auslese- & Interpretierarbeit.

danu1104 6. Mär 2010 07:51

Re: Header einer datei auslesen.
 
genau das weiss ich ja nicht :-)

Gibt es eine einfache version, dieses herauszufinden? Ich weiss nichtmal wie ich anfangen soll :-/

habe mit einem hexeditor die *.hd geöffnet, was ist jetzt der offset das : 0000010 oder das 0x00000000

SirThornberry 6. Mär 2010 07:58

Re: Header einer datei auslesen.
 
Einen Delphi-Weg dies heraus zu finden gibt es nicht. Du musst schon wissen was du auslesen willst um es auszulesen. Du müsstest dir also die Spezifikation des Formates ansehen. Meist ist Wikipedia als erste Anlaufstelle ganz gut. Dort findet man dann in der Regel Links zur gesamten Spezifikation etc.

chaosben 6. Mär 2010 10:53

Re: Header einer datei auslesen.
 
Wotsit ist auch eine gute Anlaufstelle für unbekannte Dateiformate.

Für das Quake-Pak-Format gibts da eine Text-Datei (im zip), die den Aufbau erklärt


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