AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi String in Array of Byte (string ist schon ein hex Wert)
Thema durchsuchen
Ansicht
Themen-Optionen

String in Array of Byte (string ist schon ein hex Wert)

Ein Thema von dernordischegott · begonnen am 11. Nov 2010 · letzter Beitrag vom 12. Nov 2010
Antwort Antwort
dernordischegott

Registriert seit: 11. Nov 2010
5 Beiträge
 
#1

String in Array of Byte (string ist schon ein hex Wert)

  Alt 11. Nov 2010, 15:12
Delphi-Version: 2007
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: String in Array of Byte (string ist schon ein hex Wert)

  Alt 11. Nov 2010, 15:21
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
dernordischegott

Registriert seit: 11. Nov 2010
5 Beiträge
 
#3

AW: String in Array of Byte (string ist schon ein hex Wert)

  Alt 11. Nov 2010, 15:53
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: String in Array of Byte (string ist schon ein hex Wert)

  Alt 11. Nov 2010, 15:59
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:
const s = 'F9';
begin
  ShowMessage(IntToStr(StrToInt('$' + s)));
end;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
dernordischegott

Registriert seit: 11. Nov 2010
5 Beiträge
 
#5

AW: String in Array of Byte (string ist schon ein hex Wert)

  Alt 11. Nov 2010, 20:17
Vielen Dank

werde das morgen früh @work direkt probieren.

liebe Grüße aus Erfurt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: String in Array of Byte (string ist schon ein hex Wert)

  Alt 11. Nov 2010, 22:23
Oder Delphi-Referenz durchsuchenHexToBin
$2B or not $2B

Geändert von himitsu (11. Nov 2010 um 22:35 Uhr)
  Mit Zitat antworten Zitat
dernordischegott

Registriert seit: 11. Nov 2010
5 Beiträge
 
#7

AW: String in Array of Byte (string ist schon ein hex Wert)

  Alt 12. Nov 2010, 07:38
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
  Mit Zitat antworten Zitat
dernordischegott

Registriert seit: 11. Nov 2010
5 Beiträge
 
#8

AW: String in Array of Byte (string ist schon ein hex Wert)

  Alt 12. Nov 2010, 07:57
gelöst - so gehts:

buff2[1] := StrToInt('$' + test_flag);

weiss man wie es geht, denkt man "oh war ich doof"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz