Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Wie Hexadizimalzahlen aneinanderhängen?


Steph.Delphi - Mi 02.06.10 14:47
Titel: Wie Hexadizimalzahlen aneinanderhängen?
Hallo
Ich würde gerne 5 Hexadizimalzahlen über die serielle Schnittstelle senden. Gibt es da vielleicht eine elegantere Methode die Zahlen aneinanderzuhängen als in diesem (funktionierenden) Beispiel?

Zu sendende Bytes:

Quelltext
1:
0x0223   0x00  0x00 0x50  0x01                    


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
befehl1: array[0..5of char;

begin
 befehl1[0]:=#35;
 befehl1[1]:=#2;
 befehl1[2]:=#0;
 befehl1[3]:=#0;
 befehl1[4]:=#80;
 befehl1[5]:=#1;

ApdComPort1.putblock(befehl1,6);
end;

Wäre nett, wenn da Jemand nen Tip hätte.

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Narses - Mi 02.06.10 14:57

Moin und :welcome: im Forum!

user profile iconSteph.Delphi hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es da vielleicht eine elegantere Methode die Zahlen aneinanderzuhängen als in diesem (funktionierenden) Beispiel?
Wenn du eh schon ein Array of Char hast, kannst du auch gleich einen (Ansi-)String nehmen: :idea: ;)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  Befehl: AnsiString;
begin
  Befehl := #35#2#0#0#80#1;
  ApdComPort1.Putblock(PAnsiChar(Befehl)^,Length(Befehl)); // Aufrufkonvention ist mir unbekannt, habe ich jetzt mal geraten
end;
cu
Narses


Tryer - Mi 02.06.10 15:12

ggf. noch anders geschrieben um die Hex-Werte wiederzufinden:

Delphi-Quelltext
1:
Befehl := #$02#$23#$00#$00#$50#$01;                    

Grüsse, Dirk

PS: da gibts wohl ne kleine Macke im Highlighter. Delphi verstehts.