NAND - Mo 29.11.10 11:43
Titel: Ansi String in Hex String konvertieren
Hallo
ich stehe wieder vor einem Problem, beim Datenempfang über RS232.
Ich warte mit folgender Funktion/Event auf Daten am Port.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| S : String = '';
procedure TForm1.acpTriggerAvail(CP: TObject; Count: Word); var I : Word; begin for I := 1 to Count do S:= acp.GetChar ;
ListBox3.Items.Add(S); end; |
Ich weiß das am Port 345 Bytes mit HexWerten z.B. 00,01,03,06,90 so in der Art ankommen mussen.
Hab das auch mit einem Terminal Programm geprüft.
Bei mir kommt aber folgendes heraus:
(gekürzt auf nur 30 Zeichen)
<\0><\0><3>h%%<18><\0><\0><3>h%%<16>1<\0><\0><7><\0><\0>%<16>1<\0><16><\0><\0><3>d
So in der Art, in einer ListBox nur ganz komische Zeichen.
So sollte die Anzeige aussehen:
00 00 03 68 25 25 12 00 00 03 68 25 25 10 31 00 00 07 00 00 25 10 31 00 10 00 00 03 64
Ich verwende die Komponente Turbo Power Async Pro 4.07 unter Delphi 7 mit Win7.
Vieleicht verwende ich die falsche Methode die Daten aufzufangen die am Port ankommen...?
Könnte mir damit jemand auf die Sprünge helfen?
MfG NAND
Moderiert von
Martok: Delphi-Tags gesetzt
NAND - Mo 29.11.10 13:40
Hallo Gammatester hab ich probiert.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.acpTriggerAvail(CP: TObject; Count: Word); var I : Word; begin for I := 1 to Count do S := IntToHex(acp.GetChar,2); ListBox3.Items.Add(S); end; |
Fehler Meldung vom Compiler:
[Fehler] YCI.pas(408): Es gibt keine überladene Version von 'IntToHex', die man mit diesen Argumenten aufrufen kann.
[Fataler Fehler] FT747CI.dpr(5): Verwendete Unit 'YCI.pas' kann nicht compiliert werden.
Keine Ahnung warum das passiert. Man liest ja viel über diese Funktion im Zusammenhang mit Hex Werten.
NAND - Mo 29.11.10 14:43
Danke Gammatester,
das funktioniert prima so.Genauso wollte ich es haben.
Wenn du vieleicht noch kurz erklären könntest was da genau passiert?
Delphi-Quelltext
1:
| S := IntToHex(ord(acp.GetChar),2); |
Für was steht das ord?