Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
Delphi 10.2 Tokyo Professional
|
Re: Ist es sinnvoll einen Record zu versenden?
4. Apr 2007, 18:32
Zitat von halinchen:
Wenn du einen Memorystream nimmst, schreibst du am Anfang die Länge des Strings und dann die einzelnen Chars nacheinander.
Delphi-Quellcode:
var
String:String //Dein String
MS:TMemoryStream;
i:Integer;
C:Char;
begin
MS := TMemoryStream.Create;
i:= length(String);
MS.WriteBuffer(i,sizeof(i));
For i := 1 to length(String) do begin
C := String[i];
MS.WriteBuffer(c,sizeof(c));
end;
MS.Free;
end;
so mach ich das immer
Es geht auch einfacher
Delphi-Quellcode:
var Str:String
MS:TMemoryStream;
l:Integer;
begin
MS := TMemoryStream.Create;
try
l:= length(Str);
MS.Write(l,SizeOf(Integer)); // nicht SizeOf(l) !!
MS.Write(Str[1],l);
// Stream speichern/laden/was auch immer
finally
MS.Free; // jaaa k FreeAndNil(MS) is noch besser... is es eigentlich "schlimm" wenn man nur .Free benutzt ?
end;
end;
EDIT: Damit Matze zufrieden ist noch Resourcenschutzblöcke hinzugefügt^^
Gruß
Neutral General
Michael "Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
|
|
Zitat
|