Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Di 12.03.19 10:04 
hallo,
ich habe eine String z.b.
string a = "51 51 51 5A";

Ich bin soweit gekommen, dass ich per forschleife den String auseinandergenommen habe.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
string_menge[0// <--- 0x51
...
string_menge[3// <--- 0x5A

//soweit so gut.

data = new Byte[256];
data[0] = <--- wie komme ich string_menge[0] hier rein?



Moderiert von user profile iconTh69: Topic aus WinForms verschoben am Di 12.03.2019 um 09:55
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 12.03.19 10:17 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: tomycat
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 12.03.19 11:00 

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Di 12.03.19 20:58 
ausblenden C#-Quelltext
1:
2:
 Byte[] sende_data = new Byte[100];
 sende_data[0] = Convert.ToByte("0x51"); //crash Falsches Format
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 12.03.19 21:16 
ausblenden C#-Quelltext
1:
Convert.ToByte("0x51"16// crasht nicht, wir können aber nur raten das es das ist was du willst					

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Di 12.03.19 21:36 
jein :-)
Ich zerschneide einen String "51 51 51 4e" und jedes Byte soll ich in Arry Byte rein.
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Di 12.03.19 22:55 
Dann solltest du erst mal bedenken, dass du mit string_menge[0// <--- 0x51 keineswegs ein Byte bekommst.

Du bekommst ein 'char', welcher 16bit lang ist und einen UTF-16 code point repräsentiert. Um aus einem String eine Menge von Bytes zu bekommen, brauchst du eine Übersetzungstabelle. Früher gab es codepages, heute nimmt man Unicode Encodings.

Ich empfehle dir diese Methode: Encoding.GetBytes(string)

Moderiert von user profile iconTh69: URL-Titel hinzugefügt
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 12.03.19 23:02 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: tomycat
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 13.03.19 10:43 
@jfheins: string_menge ist ein string[] (also ein String-Array), das geht zwar nicht aus dem Source-Code direkt hervor, aber aus der Beschreibung (einfacher geht es selbstverständlich mittels String.Split(' ')!).
Auch dein Link paßt nicht zu der Frage, denn dieser würde zeichenweise umwandeln (Binärrepräsentation), anstatt die Hex-Strings umzuwandeln.

Der Code von @Frühlingsrolle ist korrekt, aber dies stand ja auch schon in den von mir geposteten Link drin ("HexToBytes"), wenn auch mittels byte.Parse(), anstatt Convert.ToByte(s, 16).

Für diesen Beitrag haben gedankt: jfheins, tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mi 13.03.19 11:34 
vielen Dank an Alle, einfach Super Forum :-)


ausblenden C#-Quelltext
1:
Convert.ToByte(s, 16// <--- genau das habe ich gesucht und habe mir dir Zähne ausgebissen.