Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
|
Re: Probleme mit TMemoryStream
7. Jun 2006, 08:24
Hi,
es gibt bei der Arbeit mit Streams immer einiges zu beachten.
Wichtig ist es, dass du den Stream auf die korrekte Position setzt. Wenn du zwei Zeilen schreibst (sagen wir mal o.B.d.A es wären 20 Byte geschrieben und du liest danach, so liest du von dem 21ten Byte aus). Also erst Position auf 0 setzen. Genauso wichtig sollte ein sauberes try ... finally oder Ähnliches sein, da bei der Arbeit mit Streams (und vielem anderen) Lese/Schreibfehler auftauchen können und allozierter Speicher auch wieder frei gegeben werden sollte.
In deinem Fall kommt noch hinzu, dass ein String eine dynamische Struktur ist. Du speicherst eigentlich nur einen Zeiger auf den Speicher in dem dein String liegt. Wenn du einen String aus einem Stream lesen möchtest, dann setz vorher lieber seine Länge (setLength(buf, str.size))
Gruß Der Unwissende
|