AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Header einer datei auslesen.

Offene Frage von "danu1104"
Ein Thema von danu1104 · begonnen am 6. Mär 2010 · letzter Beitrag vom 6. Mär 2010
Antwort Antwort
danu1104

Registriert seit: 4. Dez 2006
75 Beiträge
 
Delphi 2006 Personal
 
#1

Header einer datei auslesen.

  Alt 6. Mär 2010, 07:16
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;
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Header einer datei auslesen.

  Alt 6. Mär 2010, 07:38
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.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
danu1104

Registriert seit: 4. Dez 2006
75 Beiträge
 
Delphi 2006 Personal
 
#3

Re: Header einer datei auslesen.

  Alt 6. Mär 2010, 07:51
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
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Header einer datei auslesen.

  Alt 6. Mär 2010, 07:58
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Header einer datei auslesen.

  Alt 6. Mär 2010, 10:53
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
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:33 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