Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: ListView mit Stream speichern

  Alt 30. Mai 2004, 17:31
Hallo,
in dieser Zeile in Dein Fehler
Stream.Write(Items[i].Caption, SizeOf(Items[i].Caption)); Caption ist ein String. Einen String kann man nicht so einfach in einen Stream schreiben.

Du könntest dafür die beiden Methoden nutzen:

Delphi-Quellcode:
procedure WriteStringToStream(Stream : TStream; aStr : String);
var
   aStrLen : Integer;
begin
  aStrLen:=Length(aStr); // Länge des Strings merken
  Stream.WriteBuffer(aStrLen,SizeOf(Integer)); // Länge des Strings in den Stream schreiben
  Stream.WriteBuffer(Pointer(aStr)^,aStrLen); // Den eigentlichen String in den Stream schreiben
end;

function ReadStringFromStream(Stream : TStream): String;
var
   aStrLen : Integer;
begin
  Stream.ReadBuffer(aStrLen,SizeOf(Integer)); // String länge aus Stream lesen
  SetLength(Result,aStrLen); // Result auf die passende Länge setzen
  Stream.ReadBuffer(Pointer(Result)^,aStrLen); // String aus Stream in Result einlesen
end;
I come from outer space to save the human race
  Mit Zitat antworten Zitat