3Danke
ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
816
816
EMPFEHLEN
-
Hi Leute
wie oben schon geschrieben, hab ich das Problem, dass ich einen Byte-String, erzeugt mit "BitConverter.ToString(temp) zu "A1-B2-C3" nicht mehr in das urspruengliche Bytearray zurueckwandeln kann!!
Egal was ich verwende, es kommen immer die Bytes des String raus.
Welche Funktionen kann ich da verwenden? Gibt es solche Funktionen?
mfg
Blue Fox
-
Hi
Unter der Voraussetzung, dass es eine gültige Eingabe im Format
hh-hh-hh... ist:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
public byte[] funktion(String s) { byte[] ret; int l = s.Length, i, c; if((l % 3) != 0) l++; l /= 3; ret = new byte[l]; for(i = 0; i < l; i++) { c = s[3* i]; c -= (c >= '0' && c <= '9') ? '0' : ((c >= 'a' && c <= 'h') ? ('a' - 10) : ('A' - 10)); ret[i] = (byte)(c << 4); c = s[3* i + 1]; c -= (c >= '0' && c <= '9') ? '0' : ((c >= 'a' && c <= 'h') ? ('a' - 10) : ('A' - 10)); ret[i] = (byte)(ret[i] + c); } return ret; }
GrußGeändert von sheel (30.12.11 um 04:25 Uhr) Grund: Idiotischer Feher vernichtet
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Hallo Sheel
Danke fuer das Programm****** Wird mir sehr weiterhelfen!
Aber allein haette ich es nicht hinbekommen....
Mfg
Blue Fox
-
Sorry aber irgendwie funktionierts doch nicht...
Wenn ich einen String "A1-B2-C3-D4" habe kommt mit deiner Funktion "0x01 0x12 0x23 0x34" raus
Edit: Bin draufgekommen warum. Wenn du in der Funktion ein 'a' oder ein 'A' liest, ziehst du 'a' oder 'A' wieder ab! Also kommt da immer 0 raus!
Ich habs jetzt auf 'W' anstatt 'a' und '7' anstatt 'A' geaendert und schon Funktioniert es!
Danke nochmal fuer deine Hilfe.
mfg
Bastian
PS: Shorthand Codes machen mich fertig!!
Geändert von Blue_Fox (30.12.11 um 03:12 Uhr) Grund: Update wegen neuer Erkenntnis
-
So...
sorry für diesen unendlich dummen Fehler.
Problem hast du ja schon erkannt.
Habs oben auch ausgebessert, aber mit -10 statt anderen Zeichen.
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Alternativ einfach den String zwischen den Bindestrichen trennen und die Byte.Parse-Methode verwenden um aus dem hexadezimal formatierten String ein Byte zu gewinnen:
Consolenausgabe:Code csharp:1 2 3 4 5 6 7 8 9 10
Byte[] originalByteData = new Byte[] { 10, 20, 30 }; String ByteArrayAsString = BitConverter.ToString(originalByteData); Console.WriteLine(ByteArrayAsString); String[] ByteArrayElementsAsString = ByteArrayAsString.Split(new String[] { "-" }, StringSplitOptions.RemoveEmptyEntries); Byte[] recoveredByteData = new Byte[ByteArrayElementsAsString.Length]; for (int i = 0; i < ByteArrayElementsAsString.Length; i++) { recoveredByteData[i] = Byte.Parse(ByteArrayElementsAsString[i], System.Globalization.NumberStyles.HexNumber); Console.WriteLine(recoveredByteData[i]); }
Code :1 2 3 4
0A-14-1E 10 20 30
hihi = -h²
-
Hi Shakie
Das is auch ne gute Methode!! waere selbst auch nie draufgekommen!! DANKE!!
mfg
Blue Fox
Ähnliche Themen
-
Problem beim Erzeugen eines Images aus byte[]
Von Kai008 im Forum Java GrundlagenAntworten: 8Letzter Beitrag: 08.07.10, 17:59 -
VB.Net Umwandeln eines Byte-Arrays in einen String
Von Raabun im Forum .NET CaféAntworten: 1Letzter Beitrag: 14.05.07, 11:47 -
[C#] Bitmap in Byte umwandeln
Von meilon im Forum .NET Grafik und SoundAntworten: 2Letzter Beitrag: 14.08.06, 21:39 -
DWORD in byte umwandeln
Von dengel im Forum C/C++Antworten: 3Letzter Beitrag: 26.09.05, 15:33 -
char -> ASCII -> Byte umwandeln
Von hankenberge im Forum C/C++Antworten: 4Letzter Beitrag: 09.09.04, 15:10





Zitieren

Login





