Einzelnen Beitrag anzeigen

hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

String auf mehrere Teilstrings durchsuchen

  Alt 24. Jan 2007, 10:50
'loha Folks,

über das OnRxChar Ereignis der CPort Library werden alle an einem bestimmten virtuellen COM-Port eintreffenden Daten in einen Buffer eingelesen. Nun ist es so, dass nicht jede Mitteilung alleine ankommt, im Buffer des COM-Ports können auch mehrere Mitteilungen abgelegt sein. Die Mitteilungen selbst sehen auch nicht immer gleich aus (die Länge variiert). Ich müsste nun einen Weg finden, die Mitteilungen im Buffer des COM-Ports einzeln herauszufiltern und in einen eigenen Buffer zu legen.

Der InputString wird mit den Daten aus dem Buffer des COM-Ports gefüllt:

Delphi-Quellcode:
procedure TIWServerController.ComPortRxChar(Sender: TObject; Count: Integer);
var
  InputString: String;
  StartPos, EndPos: Integer;
begin
  ComPort.ReadStr(InputString, Count); <- hier wird eingelesen
Der InputString kann z.B. folgendermassen aussehen...

InputString 'T0000000127070'#$D'T0280000284664121850BE01C7'#$D 'T0000000127272'#$D'T0000000127070'#$D'T0000000127 272'#$D

...oder aber so...

InputString 'T0280000284664121850BE01C7'#$D

Nun ist mir nicht ganz klar wie die einzelnen Mitteilungen aus dem String extrahiert werden können, ob man dazu ausschliesslich mit Pos und PosEx arbeiten kann, oder ob es einen einfachen Weg gibt den ich nicht sehe.

Grüsse
hirnstroem
inde deus abest
  Mit Zitat antworten Zitat