AGB  ·  Datenschutz  ·  Impressum  







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

Datei binär auslesen (Delhpi 7)

Ein Thema von Captnemo · begonnen am 23. Mai 2016 · letzter Beitrag vom 23. Mai 2016
Antwort Antwort
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:19
Naja, beim Header klappt's ja ganz gut


Delphi-Quellcode:
TDBHeader = array[0..31] of Byte;
.
.
.
  TForm1 = class(TForm)
  .
  .
  private
    inputFS: TFileStream;
    DBHeader: TDBHeader;
  .
  .
  end;
.
.
.
.
procedure TForm1.GetHeader(fs: TFileStream);
begin
  fs.Read(DBHeader, SizeOf(DBHeader));
end;
Der einzige Unterschied den ich sehe ist, dass ihr hier ein statisches Array habe.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:26
Der Header ist aber auch ein statisches Array und das ist wie ein Record.
Ein dynamisches Array ist aber ein Pointer, der dann auf den Arrayinhalt zeigt.
Und ohne Dereferenzierung schreibst du dann in den Pointer und nicht in die Daten.

Beim Statischen sind die Daten dagegen direkt in der Variable drin.

SizeOf(Daten) = 4
SizeOf(DBHeader) = mehr
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Mai 2016 um 16:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#3

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:28
Ahhhh.....dann verstehe ich das.

Danke.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#4

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:31
Darum am Besten immer Dereferenzieren, egal ob statisch oder dynamisch ... da kann dann nie was schief gehen.

Entweder Datan[Low(Daten)] oder du sagst "bei mir beginnt Statisches immer bei 0", dann Datan[0] .
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#5

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:38
Ich brauch doch noch etwas Unterstützung bei der Umsetzung.

Wenn ich das so mache:

Delphi-Quellcode:
PDatenArray = Array of Byte;
TDAtenArray = ^PDatenArray;

procedure ....
var
  Daten = TDatenArray;
begin
  Datasize=1607;

  SetLength(Daten^,Datasize);
.
.
.
.
end;
Dann knallt es bei SetLength.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:39
setlength(Daten,AnzahlElemente); Gruß
K-H

Das werde ich auch mal ausprobieren. Aber wenn ich das richtig verstanden habe kommt beides auf's gleiche raus.
korrekt!
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#7

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:41
Low: Delphi-Referenz durchsuchenSystem.Low
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#8

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:51
Danke euch beiden für die schnelle Hilfe. Jetzt klappt es so wie gewünscht.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:36
Wenn Du auch dynamische Arrays nutzt, dann gewöhn Dir z.B. fs.read(meinarray,anzahl); ganz schnell ab und mach es so fs.read(Meinarray[low],anzahl); Das geht soweit ich weiß bei statischen und Dynamischen Arrays und funktioniert dann immer.
(also immer wenn Du auf ein Array zugreifen willst, nur über den Index gehen)

Gruß
K-H

Edith:
seit wann low(MeinArray) ? Ich kenn es nur ohne Angabe des Arrays.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (23. Mai 2016 um 16:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#10

AW: Datei binär auslesen (Delhpi 7)

  Alt 23. Mai 2016, 16:39
Wenn Du auch dynamische Arrays nutzt, dann gewöhn Dir z.B. fs.read(meinarray,anzahl); ganz schnell ab und mach es so fs.read(Meinarray[low],anzahl); Das geht soweit ich weiß bei statischen und Dynamischen Arrays und funktioniert dann immer.
(also immer wenn Du auf ein Array zugreifen willst, nur über den Index gehen)

Gruß
K-H
Das werde ich auch mal ausprobieren. Aber wenn ich das richtig verstanden habe kommt beides auf's gleiche raus.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  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 19:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz