![]() |
Re: Daten von ComPort in Stringliste speichern
Zitat:
Zitat:
Mach' doch mal bitte folgendes: Gehe in Deinem Code in die erste Zeile der Methode ApdComPort1TriggerAvail. Drücke F5 - nun sollte die Zeile hervorgehoben sein und links am Zeilenrand ein roter Punkt sein. Wenn Du nun via F9 übersetzt, sollte in dem roten Punkt ein Häkchen sein. (Ansonsten in der nächsten Zeile F5 drücken). Wenn nun der Code ausgeführt wird, also ein OnTriggerAvail ausgelöst wird, springt der Debugger an diesen Haltepunkt. Dann fahre mit der Maus über "count" oder markiere count und drücke Strg+F5. Somit wird Dir angezeigt, welchen Wert count momentan gerade hat -> Und dann teil uns mit, welchen Wert count hier hat :) Und zum "Zeilenabschluss": ich dachte da an so #13#10 o.ä. ;) muss aber nicht sein... Gruß Stephan :dance: |
Re: Daten von ComPort in Stringliste speichern
Hallo was kommt denn hier raus
Delphi-Quellcode:
stammt aus den Examples der TurboPower
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
{Event OnTriggerAvail - Example how OnTriggerAvail works} var I : Word; C : Char; S : String; begin S := ''; for I := 1 to Count do begin C := ApdComPort1.GetChar; case C of #0..#31 : {Don't display} ; else S := S + C; end; end; ShowMessage('Got an OnTriggerAvail event for: ' + S); end; Gruß Uwe |
Re: Daten von ComPort in Stringliste speichern
@ steve
count = 1 hat er mir angezeigt und als Zeilenabschluss kommt eigentlich kein #13#10 :gruebel: @ ol1uw Aha, da tut sich was. Anzeigen tut ers schonmal. |
Re: Daten von ComPort in Stringliste speichern
Villeicht funktioniert dann das hier auch
Delphi-Quellcode:
oder
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
{Event OnTriggerAvail - Example how OnTriggerAvail works} var I : Word; C : Char; S : String; List: TStringList; begin List:=TStringList.Create; List.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'temp.txt'); S := ''; for I := 1 to Count do begin C := ApdComPort1.GetChar; case C of #0..#31 : {Don't display} ; else S := S + C; end; end; List.add(s); List.SaveToFile(ExtractFilePath(ParamStr(0))+ 'temp.txt'); List.Free; end;
Delphi-Quellcode:
Gruß Uwe
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
{Event OnTriggerAvail - Example how OnTriggerAvail works} var I : Word; C : Char; S : String; List: TStringList; begin List:=TStringList.Create; List.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'temp.txt'); S := ''; for I := 1 to Count do begin C := ApdComPort1.GetChar; case C of #0..#31 : {Don't display} ; else S := S + C; end; end; List.Text:=List.Text+S; List.SaveToFile(ExtractFilePath(ParamStr(0))+ 'temp.txt'); List.Free; end; |
Re: Daten von ComPort in Stringliste speichern
@ ol1uw
Leider nicht. Die Buchstaben werden alle untereinander in die Liste geschrieben. :( |
Re: Daten von ComPort in Stringliste speichern
Hi,
Zitat:
Also bekommst Du via GetChar nur ein Zeichen. Und dieses wird an die Stringliste als eigener Eintrag angehängt. Jeder Eintrag wird als eigene Zeile in die gespeichert, also muss das Ergebnis ja so aussehen! :cyclops: In meinem Fall war es so, dass die zurückgegebene Zeichenkette mit einem Steuerzeichen abgeschlossen wurde (z.B. #0, oder in meinem Fall eben #13#10), wenn die Antwort des Geräts auf meine Anfrage vollständig bzw. abgeschlossen war. (Daher meine dauernde Nachfrage nach dem String-Abschluss ;) ) Habe dann einfach nen String private deklariert, diesen mit in OnTriggerAvail für i:=0 bis count-1 mit GetChar gefüllt und geprüft, ob die letzten Zeichen #13#10 waren. Wenn nicht, passierte gar nix und im nächsten OnTriggerAvail wurden die nächsten empfangenen Zeichen angehängt. Falls aber doch, war die Übermittlung abgeschlossen und ich konnte meine empfangene Zeichenkette auswerten :) Gruß Stephan :dance: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 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