Moin!
Das Problem ist hier nicht netzwerkbezogen, sondern liegt am Zugriff auf die Strings.
Zunächst mal die obligatorische Warnung vorab: Der generische Typ
String ist nur bis (ausschließlich) Delphi 2009 ein AnsiString, hat also 1-Byte Zeichen, ab D2k9 ist das dann ein Unicodestring! Deshalb: entweder AnsiString nehmen oder besser nicht davon ausgehen, dass Strings 1 Byte pro Zeichen haben!
Hier ist der Fehler:
>M@steR< hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var st: TMemoryStream; s: string; begin s := Memo2.Text; st := TMemoryStream.Create; try st.WriteBuffer(s,length(s)); | |
Damit greifst du nicht auf die String-
Daten zu, sondern auf den Pointer, das ist natürlich nicht korrekt! Probier das mal so:
Delphi-Quelltext
1:
| st.WriteBuffer(PChar(s)^, Length(s)); |
Und als Tipp: Du kannst den Memo-Inhalt auch direkt per .SaveToStream in den Stream schreiben. Abgesehen davon gibt´s auch noch den TStringStream.
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.