Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Daten von ComPort in Stringliste speichern (https://www.delphipraxis.net/44882-daten-von-comport-stringliste-speichern.html)

Grolle 4. Mai 2005 10:42

Re: Daten von ComPort in Stringliste speichern
 
Hi!
Also drin stehen solte so ungefähr das:

Zitat:

Do05.10.03 02:09:33 Status/Einstellung(N):
Status Input(1- 8):00000000 / Output(1-2):00
N1:+491714205012.0 N2:+491????????2.0
N3:+491????????3.0 N4:+491????????4.0
N5:+491????????5.0 E-Mail-Adr:
testadresse*T-Online.de
Auto: T2=Fr.16:15
Whlg: T3=00 mal
nach: T4=05 min
Prepaid: T5=200 Cent
Guthaben: 655.35 Euro
M1: 32 Zeichen SMS - Meldetext(M01)
M2: 32 Zeichen SMS - Meldetext(M02)
M3: 32 Zeichen SMS - Meldetext(M03)
M4: 32 Zeichen SMS - Meldetext(M04)
M5: 32 Zeichen SMS - Meldetext(M05)
M6: 32 Zeichen SMS - Meldetext(M06)
M7: 32 Zeichen SMS - Meldetext(M07)
M8: 32 Zeichen SMS - Meldetext(M08)
Mit nem Memo Feld funktioniert das so. :gruebel:

Grolle 4. Mai 2005 10:44

Re: Daten von ComPort in Stringliste speichern
 
äh, natürlich ohne den Smilie :mrgreen:

Steve 4. Mai 2005 10:48

Re: Daten von ComPort in Stringliste speichern
 
Hi,
Zitat:

Zitat von Grolle
Also drin stehen solte so ungefähr das:
...
Mit nem Memo Feld funktioniert das so. :gruebel:

Schau doch mal, was tatsächlich in den Parametern bzw. Variablen drinsteht (Breakpoint mit F5, durchsteppen mit F7/F8 ).

Und wenns in nem Memo klappt, klappts auch in ner Stringlist. TMemo.Lines stammt genauso wie TStringList von TStrings ab bzw. ist vom Typ TStrings... mach das, womit du den Text ins Memo bekommst einfach genauso für die Stringlist ;)
Bzw. wie hast Du denn den Text ins Memo bekommen?

Gruß
Stephan :dance:

Grolle 4. Mai 2005 14:35

Re: Daten von ComPort in Stringliste speichern
 
Hi!
Habe mich vertan. War doch nen RichEdit. Mit nem Memo
gehts aber so auch. Hier der Source:
Delphi-Quellcode:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
  Data: String;
  I: Integer;
begin
  Data := '';
  for I:= 0 to Count-1 do
  begin
    Data := Data + ApdComPort1.GetChar;
    RichEdit1.SelText := (Data);
  end;
end;

Quake 4. Mai 2005 15:26

Re: Daten von ComPort in Stringliste speichern
 
Dann solle das aber mit
Delphi-Quellcode:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
  Data: String;
  I: Integer;
begin
  Data := '';
  for I:= 0 to Count-1 do
  begin
    Data := Data + ApdComPort1.GetChar;
    List.Text := (Data);
    List.SaveToFile(ExtractFilePath(ParamStr(0))+ 'temp.txt');
  end;
end;
funktionieren.

Grolle 4. Mai 2005 16:31

Re: Daten von ComPort in Stringliste speichern
 
Tut es aber nicht :cry:

Steve 6. Mai 2005 08:10

Re: Daten von ComPort in Stringliste speichern
 
Hi,

der Code von Quake kann auch nicht wirklich funktionieren, da die Schleife auch das Add und das Speichern beinhaltet, also für jedes einzelne Zeichen. Und nicht erst, wenn die Zeichenfolge "fertig" ist.

Hab doch nun einige Anregungen gegeben bzw. Fragen gestellt (Debuggen, String-Abschluss etc.) - versuch das doch mal, damit wir der Fehlerursache auf die Schliche kommen :!:

Gruß
Stephan :dance:

Grolle 6. Mai 2005 12:02

Re: Daten von ComPort in Stringliste speichern
 
Hi Steve!
Hier nochmal was ich grundsätzlich versuche:
Ich stelle eine Verbindung zu dem Endgerät her:
Delphi-Quellcode:
procedure TForm1.ToolButton6Click(Sender: TObject);
begin
  if FileExists(ExtractFilePath(ParamStr(0))+'verbindung.ini') then
  begin
    ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'verbindung.ini');
    if ini.ReadBool ('comport','checked',true) then
      begin
        ApdComPort1.ComNumber := ini.ReadInteger('comport','port',0);
        ApdComPort1.Output := #13;
        StatusBar1.Panels.Items[0].Text := 'Verbunden';
      end;
  end else
  Form2.Show;
end;
Durch den CR wird die BaudRate des Endgerätes auf 9600 gesetzt (Dies funktioniert
komischerweise auch nicht immer).
Nun sende ich per Button Click z. B. 'M10=EIN'. Dadurch werden z. B. die
Einstellungen abgefragt. Diese hatte ich in einem Beitrag weiter oben
schon mal gepostet. So wie sie in dem Beitrag stehen kommen sie auch
zurück. Mit Hyperterminal funktioniert das alles sehr gut. Ich
weiß eben nicht, wie ich die empfangenen Daten weiterverwerten kann.
(Stringliste, in Memo speichern etc.). Fehlermeldungen bekomme ich eigentlich
keine.

Steve 6. Mai 2005 12:16

Re: Daten von ComPort in Stringliste speichern
 
Hi,

ich denke, ich verstehe schon halbwegs, was Du machen möchtest :) Mich interessiert viel mehr, woher Dein Fehler (in der abgespeicherten StringList/Datei) kommt.

Darum nochmal:
Welchen Wert hat der Parameter count in ApdComPort1TriggerAvail und erwartest Du als Abschluss einer empfangenen Zeichenfolge ein bestimmtes Zeichen, damit Du weißt, wann die Übertragung fertig ist? :?:

Was ist an den Fragen denn so schwer? :wall: sorry, ich versteh's net... :stupid:

Gruß
Stephan :dance:

Grolle 6. Mai 2005 12:34

Re: Daten von ComPort in Stringliste speichern
 
Hi!
Habt Nachsicht - bin noch Anfänger :mrgreen:
Also Count hat bekommt keinen bestimmten Parameter zugewiesen.
Ein bestimmtes Zeichen erwarte ich eigentlich nicht am Ende der Über-
tragung. Ich könnte z. B. natürlich sagen, dass die letzten 4 Zeichen
[M8] sein sollen, obwohl das nicht immer zutreffend ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.
Seite 2 von 3     12 3      

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