Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit TFileStream.Read

  Alt 5. Apr 2010, 10:48
es ist reines glück das im Editor kein Fehler kommt. Anstelle von
MazeStream.Read(TmpStr, StrLength); muss es
MazeStream.Read(TmpStr[1], StrLength); heißen. Denn ein String, ein dynamisches Array etc. sind etwas mehr als nur Speicherplatz. Dahinter verbirgt sich eigentlich ein Pointer auf die eigenltichen Daten mit Referenzzählung, Längenangabe etc.
Mit TmpStr[1] gibst du sozusagen das erste Zeichen des Strings an und somit wird ab diesem Byte der String beschrieben und nicht die Stelle wo der Pointer etc. sonst ist.
Im übrigen musst du vorher natürlich auch die Größe des Strings setzen!

Delphi-Quellcode:
SetLength(TmpStr, StrLength);
MazeStream.Read(TmpStr[1], StrLength);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat