Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

Re: Keine 0 schreiben, aber lesen! o.O

  Alt 7. Sep 2006, 15:02
Das einzige, das ich mir vorstellen kann ist, dass beim Lesen was schiefgeht.
Delphi-Quellcode:
for i:= 0 to High(Map.MapPlan) do
begin
  Stream.Read(TexID,SizeOf(Cardinal));
  if TexID = 0 then ShowMessage(IntToStr(i)); // BAAM Es wird ne 0 gelesen o.O
  ...
end;
Wenn TexID uninitialisiert ist, steht meisstens 0 drinnenstehn.
Es kann gut sein, dass du was in den Stream reinschreibst, und es dann gleich wieder auslesen willst - ohne die Position auf 0 zu setzen. D.h. er steht am Ende des Streams, damit liest er 0 Bytes aus dem Stream, schreibt 0 Bytes in die Variable TexID rein und es bleibt die 0 darin uebrig.
Deswegen wuerde ich auch generell immer mitzaehlen, wieviele Bytes in den Stream geschrieben und gelesen wurden. Die Anzahl der gelesenen/gerschrieben Bytes steht uebrigens im Ergebnis von Read und Write.

greetz
Mike

PS: Ein Blick in die Datei zeigt eigentlich immer die Problemstelle auf, und erspart uns Spekulationen ueber evt. Fehlerursachen
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat