Autor Beitrag
>M@steR<
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Fr 03.09.10 16:25 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 02:40, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 03.09.10 19:20 
Moin!

Das Problem ist hier nicht netzwerkbezogen, sondern liegt am Zugriff auf die Strings. :idea:

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! :idea:

Hier ist der Fehler:
user profile icon>M@steR< hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden 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:
ausblenden 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. :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Fr 03.09.10 20:55 
Gelöscht