Zitat von
markusj:
Und bei schreiben und Auslesen ist zu beachten, dass du das ganze als PChar-Pointer übergeben musst. Ein Codevorschlag:
Delphi-Quellcode:
memo1.Lines.Add('TEST1');
memo1.Lines.Add('TEST2');
memo1.Lines.SaveToStream(str);
str.seek(0,soFromBeginning);
setlength(buf,str.size);
str.ReadBuffer(PChar(buf)^,str.size);
mfG
Markus
PS: Wenn du einen String schreiben willst, machst du das über str.write(PChar(somestring)^,length(somestring));
Es muss nicht unbedingt ein PChar sein. Das einzige was du damit erreichts ist das der String=Pointer dereferenziert wird. Du also die Daten direkt übergibst.
Genau so geht auch anstelle von
str.ReadBuffer(PChar(buf)^,str.size);
folgendes:
str.ReadBuffer(buf[1],str.size);
Der sinn ist also das man keinen Pointer übergibt sondern die Daten (das wo der Pointer hinzeigt).