![]() |
Daten von ComPort in Stringliste speichern
Hi!
Ich möchte gerne das, was von der ComSchnittstelle zurück kommt (benutze Async Pro) in eine Stringliste speichern. Das funtioniert nicht und ich weiß nicht wo der Fehler liegt (Es wird nur ein Zeichen gespeichert. Müssten aber einige Reihen sein.) Hier der Quelltext:
Delphi-Quellcode:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var Data: String; I: Integer; List: TStringList; begin List:=TStringList.Create; Data := ''; for I:= 0 to Count-1 do Data := Data + ApdComPort1.GetChar; List.Add(Data); List.SaveToFile(ExtractFilePath(ParamStr(0))+ 'temp.txt'); List.Free; end; |
Re: Daten von ComPort in Stringliste speichern
Hallo,
du erzeugst deine Datei jedesmal neu wenn ein Event kommt, daher steht da immer nur ein Wert drin! entweder du lädst deine Datei immer in die jedesmal neu erzeugte Liste und fügst dann dein Wert dazu oder du erzeugst die Liste als Classen Variable der Form und speicherst somit immer alle Events mfg DerDan |
Re: Daten von ComPort in Stringliste speichern
Hi!
Ich kann dir leider nicht so ganz folgen. Die Datei ist ja eine temporäre Datei und soll nur für dieses Ereignis ge- ändert (bzw. erzeugt)werden. Ich weiß ja auch, welche Ereignisse kommen. Bitte nicht schlagen, wenn ich jetzt totalen Müll geschrieben hab. :drunken: |
Re: Daten von ComPort in Stringliste speichern
Ich brauche nochmal eure Hilfe. Habe es jetzt wie folgt gelöst:
Delphi-Quellcode:
Jetzt werden allerdings alle Zeichen untereinander und nicht reihenweise
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var I: Integer; begin for I:= 0 to Count-1 do List.Add(ApdComPort1.GetChar); List.SaveToFile(ExtractFilePath(ParamStr(0))+ 'temp.txt'); end; in die Datei gespeichert, wie es sein soll. Wie kann ich das ändern? Ist wahrscheinlich ne doofe Frage, aber ich habe noch nie wirklich mit Stringlisten gearbeitet. :roll: |
Re: Daten von ComPort in Stringliste speichern
*push* :angel2:
|
Re: Daten von ComPort in Stringliste speichern
List.Add legt immer eine neue Zeile an.
List.text:=List.text + ApdComPort1.GetChar; |
Re: Daten von ComPort in Stringliste speichern
Hi!
Klappt auch nicht. Jeder Buchstabe wird schön untereinander in der Datei abgespeichert. :? |
Re: Daten von ComPort in Stringliste speichern
Hi,
evtl. gehts so:
Delphi-Quellcode:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var I: Integer; txt: STRING; begin txt := ''; for I:= 0 to Count-1 do begin txt := txt+ApdComPort1.GetChar; end; List.Add(txt); List.SaveToFile(ExtractFilePath(ParamStr(0))+ 'temp.txt'); end; [edit] Sind evtl CR/LF's (#13#10) in der empfangenen Zeichenkette enthalten? [/edit] Gruß Stephan :dance: |
Re: Daten von ComPort in Stringliste speichern
Hi!
Funktioniert leider auch nicht. Alle Buchstaben stehen in der Liste untereinander. Vielleicht sollt ich mich mal nach einer anderen Lösung umsehen? |
Re: Daten von ComPort in Stringliste speichern
Hi,
hast mal geschaut, welche Zeichen in 'txt' stehen? Wie groß ist 'count'? Ist count bspw. 1, dann müssen die Zeichen untereinander stehen. Wie wird Dein erwarteter String abgeschlossen? Habe selber schon einiges mit ASync Pro gemacht, und das funzt mit Sicherheit irgendwie :mrgreen: Gruß Stephan :dance: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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 by Thomas Breitkreuz