Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi memo.add und #00 (https://www.delphipraxis.net/24976-memo-add-und-00-a.html)

endeffects 29. Jun 2004 11:10


memo.add und #00
 
Hallo,
ich möchte gerne Binärdaten in einem Memo ausgeben,
nun hab ich hier ein wenig im Forum geschaut und erfahren
das man einige Sonderzeichen ersetzen muss, also habe ich das
ganze so aufgebaut:


begin
s := IdTCPClient.ReadLn(#$A, 5);
if s <> '' then
Memo1.Lines.Add(StringReplace(s,#00,' ',[rfReplaceAll]));
end;

die Memo Ausgabe wird allerdings immer noch durch #00 beschnitten
hab ich etwas vergesse?

scp 29. Jun 2004 11:20

Re: memo.add und #00
 
Soweit ich weis, kommt StringReplace mit #00 nicht zurecht, da es annimmt dies wäre das letzte Zeichen des Strings.
Du müsstest also die #00 manuell mit einer for-Schleife rausfiltern.

endeffects 29. Jun 2004 12:13

Re: memo.add und #00
 
ich hab das ganze nun so gelöst:

Code:
  s := IdTCPClient.ReadLn(#$0, 5);
  if s <> '' then
    Memo1.Lines.Add(s);
damit erfolgt die ausgabe zwar nun
nicht mehr in der richtigen reinfolge,
aber um die verbindung zu überwachen
ist das ersteinmal ausreichen

endeffects 29. Jun 2004 12:34

Re: memo.add und #00
 
ich hab das ganze nun so gelöst:

Code:
  s := IdTCPClient.ReadLn(#$0, 5);
  if s <> '' then
    Memo1.Lines.Add(s);
damit erfolgt die ausgabe zwar nun
nicht mehr in der richtigen reinfolge,
aber um die verbindung zu überwachen
ist das ersteinmal ausreichen

Bernhard Geyer 29. Jun 2004 12:49

Re: memo.add und #00
 
Zitat:

Zitat von endeffects
die Memo Ausgabe wird allerdings immer noch durch #00 beschnitten
hab ich etwas vergesse?

Grundsätzlich ist #00 in der C-Welt (PChar) (und die Win32-API verwendet PChar's) der Abschluß eines Strings.
Und da TMemo auf dem entsprechenden Win32-Control basiert, werden deine Strings durch #00 beschnitten.

endeffects 29. Jun 2004 12:53

Re: memo.add und #00
 
ja, das hab ich auch schon in einer newsgroup gelesen,
sowas ist mit php irgendwie einfacher =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz