![]() |
Delphi-Version: 2007
String in Array of Byte (string ist schon ein hex Wert)
Hallo Gemeinde,
ich bin neu hier - aber werd gleich mal eine Frage stellen. Ich habe ein Array buff2 : array [0 .. GPRS_STUFF_BUFF] of Byte; Dieses will ich füllen - ich benötige nur zwei Elemente: Das erste wird hard gecoded: buff2[0] := $06; beim zweiten liegt das Problem - ich erhalte den hex-Wert als String. Also z.B. '93'. Diese '93' sollen nun in buff2[1] geschrieben werden. Was ist die Lösung dafür? Habe folgendes schon probiert, aber es erfolgt jedesmal ein Umwandlung, d.h. aus der 93 wird ein 5D, was jedoch einen falschen Wert darstellt (da ja 93 geschrieben werden sollen) buff2[1] := Ord(strToIntDef(test_flag, 0)); // 5D buff2[1] := StrToInt( test_flag ); // 5D Also nochmal zusammenfassend Array soll die Elemente 06 & 93 beinhalten Vielen Dank |
AW: String in Array of Byte (string ist schon ein hex Wert)
Ein Byte ist eine Zahl (in Deinem Fall 93). Diese kann man dezimal darstellen oder hexadezimal (oder binär oder oktal usw.). Am Wert selbst ändert das aber nichts, der ist völlig korrekt.
|
AW: String in Array of Byte (string ist schon ein hex Wert)
Vielen Dank für die schnelle Antwort,
ganz so leicht scheint es aber nicht zu sein. Wenn ich ein F9 als String bekomme muss ich es ja dem Element des Byte Arrays übergeben. Gibt es da eine Funktion? StrToInt( test_flag ); kann ich ja nicht nehmen, da er ja aus z.b. einer 80 eine 50 macht (sprich dez -> hex). Kann man den String casten? Vielen Dank PS: bin noch nicht so lange in Delphi tätig - eher Anfänger |
AW: String in Array of Byte (string ist schon ein hex Wert)
Die Strings sind im Hexadezimal-Format? Dann müsste es AFAIK genügen, ein "$" davor zu schreiben, dann kann man mit StrToInt casten.
[edit] Beispiel:
Delphi-Quellcode:
[/edit]
const s = 'F9';
begin ShowMessage(IntToStr(StrToInt('$' + s))); end; |
AW: String in Array of Byte (string ist schon ein hex Wert)
Vielen Dank
werde das morgen früh @work direkt probieren. liebe Grüße aus Erfurt |
AW: String in Array of Byte (string ist schon ein hex Wert)
Oder
![]() |
AW: String in Array of Byte (string ist schon ein hex Wert)
Guten Morgen,
danke für die Antworten buff2[1] := IntToStr(StrToInt('$' + test_flag)); führt leider zu einem "Incompatible Types: Byte and String" Werd mal den zweiten Tipp probieren. Tschau |
AW: String in Array of Byte (string ist schon ein hex Wert)
gelöst - so gehts:
buff2[1] := StrToInt('$' + test_flag); weiss man wie es geht, denkt man "oh war ich doof" :cyclops::cyclops::cyclops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:56 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