AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi typisierte Datei mit freiem Offset einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

typisierte Datei mit freiem Offset einlesen

Ein Thema von messie · begonnen am 18. Jun 2008 · letzter Beitrag vom 18. Jun 2008
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

typisierte Datei mit freiem Offset einlesen

  Alt 18. Jun 2008, 10:34
Moin,

ich habe eine Frage zum Einlesen von Dateien: ich habe eine Datei mit einem unbekannten Header der Länge x und Daten eines records (3xdouble). Die Funktion Seek gibt mir aber nicht die Möglichkeit, den Offset frei zu wählen, sondern nur in Recordlängen.
Gibt es da andere Lösungen, oder muss ich das alles Byteweise sortieren?

Danke, Messie
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

Re: typisierte Datei mit freiem Offset einlesen

  Alt 18. Jun 2008, 11:40
Zitat von messie:
Moin,

ich habe eine Frage zum Einlesen von Dateien: ich habe eine Datei mit einem unbekannten Header der Länge x und Daten eines records (3xdouble). Die Funktion Seek gibt mir aber nicht die Möglichkeit, den Offset frei zu wählen, sondern nur in Recordlängen.
Gibt es da andere Lösungen, oder muss ich das alles Byteweise sortieren?

Danke, Messie
Was heißt Byteweise sortieren? Da keine einheitliche Struktur da ist, muß flexibel gelesen werden. Allerdings nicht mit file of byte oder ähnlich, sondern zB so:

Delphi-Quellcode:
reset(datei, 1);
seek(datei, offset);
blockread(datei, MyRecord, sizeof(MyRecord);
Gruß Gammatester
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: typisierte Datei mit freiem Offset einlesen

  Alt 18. Jun 2008, 12:24
Oder gleich die alten Pascal Routinen mit ihren Spinnenweben so liegenlassen und TStream nutzen:

Delphi-Quellcode:
type
  TDoubleData = packed record
    Double1, Double2, Double3: double;
  end;
var
  lStream: TStream;
  lData: TDoubleData;
begin
  lStream := TFileStream.Create('deinFile.ext', fmOpenRead);
  try
    lStream.Position := x; // deine Position X
    lStream.ReadBuffer(lData, sizeof(lData));
  finally
    lStream.Free;
  end;
end;
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#4

Re: typisierte Datei mit freiem Offset einlesen

  Alt 18. Jun 2008, 14:04
Danke, super Idee!
  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 18:35 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