Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   idTelnet (https://www.delphipraxis.net/180841-idtelnet.html)

value is NULL 23. Jun 2014 11:17

idTelnet
 
Hallo Community,

sitze jetzt ca schon 1 Stunde vor Google und finde irgendwie keine brauchbaren Ergebnisse.
Ich würde gerne eine kleine VCL Anwendung basteln, welche sich per Telnet auf einen Server verbindet und alle Events die dort passieren in ein Memo protokolliert.
Hintergrund: Der Server liefert XML Results welche ich dann grafisch gerne etwas aufbereiten will.

Connect ist klar:

Delphi-Quellcode:
  try
    IdTelnet1.Host := edit1.Text;
    IdTelnet1.Port := StrToInt(edit2.Text);
    Form1.IdTelnet1.Connect;
  except
    on E: Exception do
      Memo1.Lines.Add(E.Message);
  end;
Auch habe ich schon festgestellt, das ich auf jeden Fall das onDataAvailable Event brauche:

Delphi-Quellcode:
procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: String);
Wie realisiere ich jetzt die DataAvailable Sache? Ich nutze Delpih XE Architect.
Danke und LG

himitsu 23. Jun 2014 11:37

AW: idTelnet
 
Das soll stimmen?

XE Enterprise meint es wäre
Delphi-Quellcode:
procedure IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: TArray<Byte>);
.


Wenn du weißt, daß es eine XML ist, dann kannst du das vermutlich in einen Stream kopieren und z.B. via XML.LoadFromStream laden,
oder du kopierst das via TEncoding in einen String und lädst/verarbeitst Diesen.

Wenn die XML nicht als ein Datenpacket ankommt, dann wird man wohl ein paar Packete sammeln und erst am Ende zusammengesetzt auswerten müssen. :gruebel:

value is NULL 23. Jun 2014 12:16

AW: idTelnet
 
himitsu: Danke für deine Antwort!

Laut Embarcadero gibt es hier einen known Bug. Beim hinzufügen des Events wird ein Error verursacht, deswegen habe ich es auf "String" geändert.

Bzgl. XML das ist mir klar. Die Frage ist nur wie das Result überhaupt bekomme. Ich würde mir das Result gerne in eine STringlist kopieren welche ich dann parse etc.... Weiss aber nicht wie ich die Daten empfangen kann.

LG

himitsu 23. Jun 2014 12:36

AW: idTelnet
 
Zitat:

Zitat von value is NULL (Beitrag 1263244)
Beim hinzufügen des Events wird ein Error verursacht, deswegen habe ich es auf "String" geändert.

Ein Byte-Array und ein String sind aber nicht das Selbe.

Wenn du im Event den Typen änderts, dann müsstest du auch beim "Aufrufer" dieses Events den richtigen Typen übergeben.


Als es vorhin bei mit knallte, da hab ich einfach nur aus dem
Delphi-Quellcode:
TArray<Syste.Byte>
ein
Delphi-Quellcode:
TArray<Byte>
gemacht, was ja am Typen nix ändert.
Was denn für einen Bug? (hatte erst gedacht, der Klassenvervollständiger kommt eventuell nicht mit Generics klar :stupid:)

value is NULL 23. Jun 2014 12:43

AW: idTelnet
 
Danke himitsu für die Antwort!

Du hast recht! String ist natürlich nicht das richtige gewesen :roll:
Danke schon mal dafür. Wie kann ich jetzt ein komplettes result in ein stringlist schreiben damit ich dieses dann parsen kann?

Die Beispiele im Netzt haben mich leider nicht weiter gebracht, abgesehen davon das ich nicht viel gefunden habe :/


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 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