AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

idTelnet

Ein Thema von value is NULL · begonnen am 23. Jun 2014 · letzter Beitrag vom 23. Jun 2014
Antwort Antwort
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#1

idTelnet

  Alt 23. Jun 2014, 12:17
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:

procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: String); Wie realisiere ich jetzt die DataAvailable Sache? Ich nutze Delpih XE Architect.
Danke und LG
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: idTelnet

  Alt 23. Jun 2014, 12:37
Das soll stimmen?

XE Enterprise meint es wäre 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.
$2B or not $2B
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#3

AW: idTelnet

  Alt 23. Jun 2014, 13:16
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: idTelnet

  Alt 23. Jun 2014, 13:36
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 TArray<Syste.Byte> ein 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 )
$2B or not $2B
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#5

AW: idTelnet

  Alt 23. Jun 2014, 13:43
Danke himitsu für die Antwort!

Du hast recht! String ist natürlich nicht das richtige gewesen
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 :/
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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