AGB  ·  Datenschutz  ·  Impressum  







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

TComPort 4.0, OnRXChar, Zeile erkennen

Ein Thema von schwa226 · begonnen am 4. Nov 2010 · letzter Beitrag vom 9. Nov 2010
 
Benutzerbild von himitsu
himitsu

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

AW: TComPort 4.0, OnRXChar, Zeile erkennen

  Alt 4. Nov 2010, 13:00
Bei dem "Count" scheint was nicht zu stimmen, denn dieses hast du grade doppelt ... als Parameter und als lokale Variable (aber hier sollte Delphi ja mecker)

ansonsten ... wozu doppelt suchen:
Delphi-Quellcode:
procedure TForm1.SplitBuffer(var Value: String; Data: TStringList);
var
  i : Integer;
begin
  while true do
  begin
    i := Pos(#$D#$A, Value);
    if i = 0 then exit;
    Data.Add(LeftStr(Value, i - 1)); // Data.Add(Copy(Value, 1, i - 1));
    Delete(Value, i + 1);
  end;
end;

procedure TForm1.OnRxChar(Sender: TObject; Count: Integer);
var
  ReceivedData : AnsiString;
  i: Integer;
begin
  ComPort_Connection.ReadStr(ReceivedData, Count);

  TextBuffer := TextBuffer + ReceivedData;

  NewLines.Clear;
  SplitBuffer(TextBuffer, NewLines);
  // Analyse NewLines here...
end;
und notfalls kann man es auch direkt in der Schleife verarbeiten und sich so die StringList sparen:
Delphi-Quellcode:
procedure TForm1.OnRxChar(Sender: TObject; Count: Integer);
var
  ReceivedData : AnsiString;
  i: Integer;
begin
  ComPort_Connection.ReadStr(ReceivedData, Count);
  TextBuffer := TextBuffer + ReceivedData;
  while true do
  begin
    i := Pos(#$D#$A, TextBuffer);
    if i = 0 then break;
    Value := LeftStr(TextBuffer, i - 1); // Value := Copy(TextBuffer, 1, i - 1);

    // Analyse Value here...

  end;
end;
und beim Trennen der Verbindung, dann noch den Rest verarbeiten
Delphi-Quellcode:
if TextBuffer <> 'then
begin
  // Analyse TextBuffer here...
end;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 19:58 Uhr.
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-2025 by Thomas Breitkreuz