![]() |
Variable in Stream schreiben
Ich habe ein Problem mit folgendem Code:
Delphi-Quellcode:
Die String-Konstanten kommen wunderbar im Browser an, Bufr und RemoteIP dagegen nicht, da krieg ich wirres Zeug das bei jedem Aufruf wechselt.
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); var Bufr: string; begin Bufr := Edit1.Text; AResponseInfo.ContentStream := TMemoryStream.Create; AResponseInfo.ContentStream.WriteBuffer('<h1>Mein Server</h1>', 20); AResponseInfo.ContentStream.WriteBuffer(Bufr, Length(Bufr)); AResponseInfo.ContentStream.WriteBuffer(' <hr />', 13); AResponseInfo.ContentStream.WriteBuffer(ARequestInfo.RemoteIP, Length(ARequestInfo.RemoteIP)); AResponseInfo.WriteContent; AResponseInfo.ContentStream.Free; end; //Edit: Also IdHTTPServer hat nichts damit zu tun, es landet schon falsch im Stream wie folgende Zeile zeigt:
Delphi-Quellcode:
(AResponseInfo.ContentStream as TMemoryStream).SaveToFile('test.txt');
|
Re: Variable in Stream schreiben
Hättest du vor dem Erstellem des Threads mit der Suche beschäftigst, wüsstest du 2 Dinge:
1. Es gibt haufenweise Leute vor dir mit dem gleichen Problem 2. es gibt eine Lösung die alle mit Begründung bekamen Der String ist ein Zeiger und daher schreibst du die Adresse der Stringdaten und folgenden RAM Inhalt in deinen Stream. Abhilfe schafft hier die Angabe des 1. Zeichens des Strings:
Delphi-Quellcode:
WriteBuffer(Buffr[1], Length(Buffr));
|
Re: Variable in Stream schreiben
Hm okay, werd das nächste Mal suchen.
Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz