Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei auslesen (https://www.delphipraxis.net/73985-datei-auslesen.html)

Kurai-Domi 26. Jul 2006 11:52


Datei auslesen
 
hoi, ich hab noch nie mit FileStreams gearbeitet und möchte jetzt eine datei auslesen
Bild der Datei

ich möchte alle einträge des typs LHELxxx einlesen, wie stelle ich das an?

konda 26. Jul 2006 12:05

Re: Datei auslesen
 
Vielleicht hilft dir das weiter:
Stream-Tutorial

marabu 26. Jul 2006 13:37

Re: Datei auslesen
 
Hallo,

ohne weitere Informationen muss der Lesebereich über die Adressen eingeschränkt werden:

Delphi-Quellcode:
procedure ExtractHLEL(fn: TFileName; start, stop: Cardinal; s: TStrings);
var
  len, gap: Cardinal;
  buf: String;
begin
  s.Clear;
  with TFileStream.Create(fn, fmOpenRead or fmShareDenyWrite) do
  try
    Position := start;
    while Position < stop do
    begin
      Read(len, SizeOf(Cardinal));
      SetLength(buf, len);
      Read(buf[1], len);
      s.Add(buf);
      gap := (4 - Position mod 4) mod 4; // dword aligned ?
      Position := Position + gap;
    end;
  finally
    Free;
  end;
end;
Getippt und nicht getestet.

Grüße vom marabu

Mavarik 26. Jul 2006 13:39

Re: Datei auslesen
 
Nicht die klassische Datei für FileStream, oder?

Wie wäre es mit Blockread?

Frank

Kurai-Domi 26. Jul 2006 14:48

Re: Datei auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von konda
Vielleicht hilft dir das weiter:
Stream-Tutorial

thx! hat mir sehr geholfen

jetzt hab ich aber noch ein problem. nach der stelle 0x03FB ein part kommt mir dem ich überhaupt nichts anfangen kann, ich finde da einfach kein system drin, ab 0x2E3A sind allerdings wieder daten die ich auswerten kann, die stelle ist allerdings in jeder datei von diesem datentyp verschieben, gibts da ne möglichkeit wie man weiter kommt?
(ich hab die datei mit der ich arbeite mal angehängt, vllt könnt ihr ja nen blick drauf werfen)


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