Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datensatz auswerten und aufteilen. (https://www.delphipraxis.net/135778-datensatz-auswerten-und-aufteilen.html)

Jens Hartmann 21. Jun 2009 21:27

Re: Datensatz auswerten und aufteilen.
 
Ja, kann man die nicht nutzen?

alzaimar 21. Jun 2009 21:29

Re: Datensatz auswerten und aufteilen.
 
Eigentlich müsste das doch ganz einfach gehen:
1. Suche nach '$0D$0A'.
2. Wir sind am Anfang des Datensatzes. (P <- aktuelle Position)
3. Suche nach '$0D$0A'
4. Wir sind am Ende des Datensatzes. (Q <- aktuelle Position)
5. Datensatz <- Daten[P..Q-2]
6. Datensatz verarbeiten
7. Gehe zu 1

Jens Hartmann 21. Jun 2009 22:00

Re: Datensatz auswerten und aufteilen.
 
Hallo alzaimer,

das dachte ich auch. Ist es aber leider nicht. Das Problem liegt darin, das ich das ja nur machen kann, wenn ich einen kompletten Datensatz zur Verfügung hätte. Das Problem dabei ist, den bekomme ich nur mit der Komponente ComPacket hin. Dafür, benötige ich allerdings einen Start und Stop String, den ich ja leider nicht habe.

Also lese ich von der Schnittstelle mit dem Ereignis RxChar. Hierbei, werden sobald Daten an der Schnittstelle diese eingelesen, verarbeitet und dann kann das Ereignis erneut ausgelößt werden.

Daraus folgt, das die Empfangen Zeichen immer Abhängig von der Anzahl der auftretenden Ereignisse, sowie der Verarbeitungszeit der zuletzt Empfangen Daten.

Somit, wäre es halt einfach, wenn wenigstens immer ein kompletter Datensatz an der Schnittstelle anliegen würde. Das Problem entsteht nämlich Hauptsächlich, wenn nur ein Paar einzelne Zeichen vorhanden sind. Dann muss ich erst anfangen, den Datensatz zusammenzubauen. Also alles nicht so einfach.

Ich habe es mittlerweile realisiert, 6 Zentralentypen und deren Daten zu verarbeiten. Doch bei allen, kann ich es halt über Packet mit Start und Stop machen.

Somit ist halt das größte Problem, das ich die Daten nach dem Empfangen erstmal wieder passend zusammen basteln müsste. Und ich denke einfach, das das einfacher gehen muss.

Gruß jens

Jens Hartmann 21. Jun 2009 22:26

Re: Datensatz auswerten und aufteilen.
 
Ich habe es hinbekommen. Und es war ganz einfach.

Mein Fehler lag in folgendem.

STARTString ist #$D#$A#
STOPString ist #$D#$A#$A#$1B

Ich habe geschrieben...

Delphi-Quellcode:
ComDataPacket1.StartString := '#$D#$A';
ComDataPacket1.StopString := '#$D#$A#$A#$1B';

//Richtig wäre, und so funktioniert es auch....

ComDataPacket1.StartString := #$D#$A;
ComDataPacket1.StopString := #$D#$A#$A#$1B;

//Die '   ' um den String, dürfen ja nicht sein.
:thumb:

Danke trotzdem für Eure Bemühungen. Aber mschaefer, was hat es mit deinem Code auf sich. Was sollte ich damit probieren?

Gruß Jens

alzaimar 21. Jun 2009 22:52

Re: Datensatz auswerten und aufteilen.
 
Zitat:

Zitat von Jens Hartmann
das dachte ich auch. Ist es aber leider nicht.

Doch, so ist es. Das nennt sich 'Frame' und genau das passiert im Com-Handler, den Du verwendest. In dessen Handler wird jeder Frame nach der o.g. Methode erkannt. Dabei kann es natürlich passieren, das der 1.Frame unerkannt bleibt, weil man ja gerade in der Mitte des Frames anfängt, zu lesen.

Jens Hartmann 22. Jun 2009 17:06

Re: Datensatz auswerten und aufteilen.
 
Danke alzaimer,

für die Erklärung über den Frame. Das wusste ich noch nicht. Aber wie du ja wahrscheinlich gelesen hast. Ich habe es ja dann doch noch hinbekommen.

Trotzdem Danke,

Gruss Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz