Zitat von
igel457:
Ich denke es liegt an der Prozedur "WriteString"...
Gut gedacht
Denk dran: strings und Dynamische Arrays sind im Grunde genommen das selbe. Das bedeutet, das ein String nur ein Zeiger auf den Speicherbereich ist, in dem der String wirklich steht. Also kannst du es nicht so machen wie es bei dir steht, sondern musst den Startindex mitgeben:
Delphi-Quellcode:
procedure WriteString(astring:string;astream:TStream);
var c:integer;
s:string;
begin
s := astring;
c := sizeof(s);
showmessage(s+' '+inttostr(c)); //<-- hier zeigt er das richtige an
astream.Write(c,sizeof(c));
astream.Write(s[1],c);
end;