Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Ist es sinnvoll einen Record zu versenden?

  Alt 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."
  Mit Zitat antworten Zitat