AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Daten lesen mit Indy

Ein Thema von HL92 · begonnen am 26. Jan 2015 · letzter Beitrag vom 27. Jan 2015
Antwort Antwort
HL92

Registriert seit: 7. Jan 2015
8 Beiträge
 
#1

Daten lesen mit Indy

  Alt 26. Jan 2015, 16:14
Hallo liebe DP-Gemeinde,

ich bin noch sehr neu in Delphi und stoße bei den Indy-Komponenten immer wieder auf Probleme.
Auch beim Schlaulesen komme ich zur Zeit nich voran.

Folgende Situation:

Ich habe einen WLAN Server der permanent kleine Strings verschickt die mit einem "$"eingeleitet werden und mit einem "<CR><LF>" beendet werden. Dazwischen stehen jeweils die für mich relevanten Informationen. Mein Programm stellt nun den richtigen Port und die richtige Host-IP ein, verbindet sich mit dem Server und bestätigt mir die Verbindung.

Nun soll es als nächstes jeweils eine Zeile vom "$" bis zum "<CR><LF>" einlesen und in die Variable "connectstring" übergeben, welche dann widerum im PackageProcess in ein Memofeld geschrieben wird. Dann soll die nächste Zeile in den Buffer bis zum entsprechenden "<CR><LF>, welches wider das überschreiben in die Variable einleitet u.s.w.

Hier nun meine Fragen:
1.) Wie realisiere ich, dass die Infos in den Buffer geschrieben werden und auf das entsprechende Signal in den connect
String übergeben wird.

Nehme ich dafür z.B. den TIdIOHandlerStream oder besser TIdIOHandlerStack und wie realisiere ich die Start und Stoppanweisung?


2) Mit welcher Anweisung kann ich ein sofortiges schreiben der Info als neue Zeile in das Memo realisieren? Meine Vermutung ist das ich ein "onChange" für die Variable als Auslöser nehme und dann mit:
Memo.Lines.Add (InterfaceProcess.ConnectString);
die jeweilige Zeile dazuschreibe. Spricht da etwas gegen?

Vielen dank für eure Unterstützung.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.664 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Daten lesen mit Indy

  Alt 26. Jan 2015, 16:41
Nehme ich dafür z.B. den TIdIOHandlerStream oder besser TIdIOHandlerStack
Weder noch, dazu wird einfach die Klasse TIdTCPClient verwendet, deren IOHandler bietet einen bunten Strauß Methoden zum kontrollierten Lesen (ReadXXX) aus dem TCP Socket.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
3.669 Beiträge
 
Delphi XE3 Ultimate
 
#3

AW: Daten lesen mit Indy

  Alt 26. Jan 2015, 17:19
Ich hatte kürzlich hier: http://www.delphipraxis.net/183612-i...fehlungen.html
gerade mal ein paar Threads gesammelt...

Da ist auch ein Testprojekt dabei, das verschiedene Arten der Übertragung versucht und in einem Memo logt.

Vielleicht hilft das schon mal etwas weiter...

Ich schreibe aktuell in meinem Client 1 bis n Anweisungen in eine StringList, schreibe die gepackt in einen Stream, packe die auf dem Server wieder aus in eine Stringlist und schicke 1 bis n Antworten auf dem gleichen Weg zum Client zurück.
Bisher funktioniert das wunderbar und ist sehr komfortabel zu nutzen.

Wichtig ist, möglichst nicht für jede Anfrage eine neue Verbindung aufzubauen. Besser, einige Anfragen sammeln und im Block übertragen (jedenfalls wenn es sonst zu viele Verbindungen würden).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
HL92

Registriert seit: 7. Jan 2015
8 Beiträge
 
#4

AW: Daten lesen mit Indy

  Alt 27. Jan 2015, 13:32
Vielen dank für die schnelle Reaktion auf meine Anfrage. Ich habe dieThreads (zum Teil auch schon vorher) durchgeschaut und zum Teil Codepassagen getestet und komme trotzdem noch nicht auf den grünen Zweig.

Mein Problem ist, dass der Server ein gekauftes Bauteil ist und permanent Daten ins Netz feuert. Ich will diese empfangen ohne das der Server auf eine request reagieren würde und diesen string in eine Variable stecken (Zunächst dann in ein Memo aber letztendlich dekodieren - es handelt sich um nmea0183 Daten).

Der Server ist folgender:
http://www.amazon.de/Digital-Yacht-N.../dp/B004SZACEC

Mein aktuelles Programm habe ich unten einmal in ne Dropbox gepackt. Die Verbindung wird im connector aufgebaut. Was kommt dann? Ich hoffe es kann mir da nocheinmal jemand helfen? Fehlen mir irgendwelche Units um die entsprechenden Anweisungen zu nutzen? Da es um die Verbindung zu einem Androidtablett geht, komme ich um Indy nicht herum oder?

https://www.dropbox.com/s/b09b0wvn82...EA1.3.zip?dl=0

Vielen Dank schonmal!

Geändert von HL92 (27. Jan 2015 um 13:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
3.669 Beiträge
 
Delphi XE3 Ultimate
 
#5

AW: Daten lesen mit Indy

  Alt 27. Jan 2015, 19:34
Sorry, da bin ich raus.
Ich denke, Indy ist dafür nicht das richtige - aber ich kann da nur orakeln...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf