Einzelnen Beitrag anzeigen

delphinewbie

Registriert seit: 27. Aug 2010
47 Beiträge
 
#35

Problem gelöst

  Alt 10. Sep 2010, 11:57
Hi,
nach unendlich vielen Versuchen bin ich nun zu einer Lösung meines Problems gekommen. Auch wenn ich nicht ganz nachvollziehen kann, wo letztendlich der Unterschied dieser beiden Varianten besteht, bin ich nun erstmal erleichtert, dass der Fehler beim Programm beenden nicht mehr auftritt. Vielleicht kann mir von euch jemand erklären, wo hier der feine Unterschied liegt.
Also: meine ursprüngliche Variante
Delphi-Quellcode:
Read(ds.size_ext_ch_header[i],sizeof(longint));
Setlength(ds.ext_ch_header[i], ds.size_ext_ch_header[i]);
Read(ds.ext_ch_header[i],ds.size_ext_ch_header[i]);
habe ich nun verändert in
Delphi-Quellcode:
Read(ds.size_ext_ch_header[i],sizeof(longint));
for k:=1 to ds.size_ext_ch_header[i] do
     Read(ds.ext_ch_header[i],1);
Es wird nun also byteweise ausgelesen, und zwar so oft, wie es in ds.size_ext_ch_header[i] drin steht. Und es funktioniert
Da ich den Inhalt dieser Bytes nicht weiter benötige, kann ich also diese auch immer wieder überschreiben.
Kann ich eigentlich in so einem Fall auch einfach 100 Byte oder so viel Bytes, wie in ds.size_ext_ch_header[i] steht, weiter springen, um so bspw. 'uninteressante' Daten zu überspringen ? Dann könnte ich mir ja diese for-Schleife sparen...

Vielen Dank für Eure Tipps
  Mit Zitat antworten Zitat