![]() |
IdTelnet - Empfangene Daten anzeigen
Hallo,
wie kann ich Daten lesbar anzeigen die ich per "IdTelnetDataAvailable(Sender: TIdTelnet; const Buffer: TArray<System.Byte>" erhalte ? Wenn ich Befehle per Putty sende so kann ich Antwort in Klarschrift lesen... const Buffer: TArray<System.Byte> :?: |
AW: IdTelnet - Empfangene Daten anzeigen
Im Unicode Zeichensatz gibt es für die nichtdruckbaren Steuerzeichen #$00 - #$1F recht nette Ersatzzeichen:
![]() Natürlich muss der verwendete Font diese Zeichen enthalten sonst werden die nicht angezeigt. Der Font sollte ein monospaced Font sein. Du benötigst also eine Funktion, die ein Byte in ein Unicodezeichen transformiert:
Delphi-Quellcode:
Dann noch eine zweite Funktion die ein TArray<System.Byte> in einen String übersetzt und dabei obige Funktion benützt.
function Byte2Unicodechar(b:System.Byte):char;
begin if(b >=0 and b < 32) begin // Umsetzung nach U+240x return chr(b + $2400); // ungetestet da keine aktuelle Delphiversion vorh. end else begin // direkt byte -> char return chr(b); end; end Das ist im Prinzip nur eine For-Schleife. Im Ergebnisstring dann noch in Blöcke von 32 Zeichen unterteilen und zeilenweise in ein TMemo schreiben. |
AW: IdTelnet - Empfangene Daten anzeigen
Da der TE aber XE2 hat kann man auch sehr schön
![]() |
AW: IdTelnet - Empfangene Daten anzeigen
Ich konnte es jetzt nochmal testen, die Zeichen werden so in Klarschrift ausgegeben:
Delphi-Quellcode:
procedure TForm1.IdTelnetDataAvailable(Sender: TIdTelnet; const Buffer: TArray<System.Byte>);
var s : String; begin SetString(s, PAnsiChar(@Buffer[0]), length(Buffer)); // ... end; @Sir Rufo: Das hatte ich versucht, da kam bei mir nur Zeichen Kauderwelsch.
Delphi-Quellcode:
gibt die selben Zeichen aus wie:
s := TEncoding.Unicode.GetString(Buffer);
Delphi-Quellcode:
DANKE !
SetString(s, PWideChar(@Buffer[0]), length(Buffer) div 2);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 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