Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ApdComPort und ASCII Char versenden ??? (https://www.delphipraxis.net/107527-apdcomport-und-ascii-char-versenden.html)

Ronny81 29. Jan 2008 12:06


ApdComPort und ASCII Char versenden ???
 
Hallo zusammen,

ich bin gerade dabei mir ein kleines Programm zu schreiben, dass Daten über
den ComPort meines PC senden und einlesen kann.
Aber ich stehe vor einem Problem. Ich kann einfach keine ASCII Char versenden.
Ich weis nicht ob ich zu blöd bin oder ob ich mich einfach noch zu wenig mit
Delphi auskenne.

Ich habs schon so versucht
Delphi-Quellcode:
ApdComPort1.Output := #10
Dann wir auch wirklch die "10" als ASCII Char gesendet.

Aber wenn ich es so mache
Delphi-Quellcode:
ApdComPort1.Output := edit1.text
und dann 10 in das Edit1 schreibe,
wird nur "4948", also die "10" als Hex-Daten
versendet.

Also was muss ich denn bitte mit meinem String aus dem Edit anstellen,
dass er auch wirklich als ASCII Char raus geht??

Schon mal vielen Dank.

Gruß Ronny

marabu 29. Jan 2008 12:22

Re: ApdComPort und ASCII Char versenden ???
 
Hi,

so geht es:

Delphi-Quellcode:
var
  iChar: Integer;
begin
  if TryStrToInt(Edit.Text, iChar)
    then ApdComPort1.Output := Chr(iChar)
    else Edit.Text := '?' + Edit.Text;
end;
Freundliche Grüße

Ronny81 29. Jan 2008 12:33

Re: ApdComPort und ASCII Char versenden ???
 
Hallo marabu,

danke für deine schnell Antwort.
Ich werde deinen Vorschlag gleich
heute Abend noch testen.
Deine Schreibweise ist mir noch voll
und ganz unbekannt :shock: .
Da kenn ich mich vermutlich einfach noch
zu wenig mit Delphi aus.

Gruß Ronny

user0815 29. Jan 2008 13:22

Re: ApdComPort und ASCII Char versenden ???
 
Hi, die Übertragung kannst Du aufzeichnen.

TApdComPort
-----------
TraceAllHex - True
TraceName - TRACEALLHEX.TXT
Tracing - tlOn


Delphi-Quellcode:
ComPort.PutString('10');
ComPort.PutString('HALLO');
ComPort.PutString('TeSt 1001');
ComPort.Output := '10';
Bei obigem Code sieht das wie folgt aus:

Code:
Transmit:
[31][30][48][41][4C][4C][4F][54][65][53][74][20][31][30][30][31][31][30]

  1   0   H  A  L  L  O  T  e  S  t      1   0   0   1   1   0     // manuell eingefügt
Die Komponente überträgt die Daten als Hex-Wert.

siehe: ASCII-Tabelle


In Deinem Fall wird bei:

Delphi-Quellcode:
ApdComPort1.Output := #10
ein Line Feed übertragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 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