Ja, so irgendwie, das Event, wäre kein Problem. Aber mir fehlen die Kenntnisse, wie ich das angehe. Wie lese ich aus der Variablen Buffer immer bis zum nächsten Datensatz, und wenn kein vollständiger mehr kommt, wieder den Puffer.
Ich denke mir das in etwa so...
Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Daten : String;
Satz : String;
begin
if Buffer = '' then //Durch die Abfrage ob Buffer leer ist, wird erreicht, das nicht neu gelesen wird.
begin
ComPort1.ReadStr(Daten, Count);
Buffer:=Buffer+Daten;
Bufferverarbeitung;
end:
end;
Jetzt müsste ich aber die Var. Buffer so lange bearbeiten, bis keine Vollständiger Datensatz mehr da ist, diesen aber unvollständigen Datensatz Zwischenspeichern, danach die Var. Buffer leeren und neu einlesen. Durch die if-Abfrage beim einlesen, ist ja schonmal gewährleistet, das Buffer wirklich leer ist, bis neu gelesen wird.
Nachdem, aber Buffer neu eingelesen worden ist, muss natürlich der dann unvollständige erste datensatz natürlich wieder dem Zwischenspeicher zugeführt werden, und als erstes abgearbeitet werden.
Ich denke die Idee ist gut, aber es fehlt mir total an der Ausführung.
Zitat:
Wie groß ist der Buffer?
Wie meinst Du das