2016-04-19 5 views
0

Das ist wirklich besser von mir. Ich brauche diese zu konvertieren:Konvertieren komma-separierte Binärzeichenfolge in Byte [] für Registrierungseinfügung

string data = "4,0,0,0,1,0,0,0,16,0,0,0,100,58,82,80,162,77,200,183,178,32" 

in ein Byte-Array, so dass ich es hier verwenden können:

polKey.SetValue("Blob", data, RegistryValueKind.Binary); 

ich data.Split(',') habe versucht, es in ein Array aufteilen und verwenden, aber ich kann Versteh mich nicht.

+0

Sie meinen, dass das erste Byte 4, die zweite 0, usw.? – Jcl

+0

Ich denke, Sie könnten das mit LINQ tun: 'data.Split (','). Cast (). ToArray();' – Logerfo

+2

@Logerfo Casting wird nicht funktionieren. Sie müssen die Werte analysieren, so dass Sie anstelle von '.Cast ()' '' Select (byte.Parse) 'brauchen. – juharr

Antwort

3

Ich gehe davon aus Ihrer Byte-Array muss die Werte analysiert (zB 4, 0, 1, 100 usw.) und nicht die ASCII-Werte jeder Zeichenfolge.

Zuerst auf ein Array von Strings konvertieren:

string[] strings = data.Split(','); 

konvertieren dann jede Saite auf ein Byte:

byte[] bytes = strings.Select(s => byte.Parse(s)).ToArray(); 
1

können Sie Linq verwenden

string data = "4,0,0,0,1,0,0,0,16,0,0,0,100,58,82,80,162,77,200,183,178,32"; 
var buf = data.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) 
       .Select(x => byte.Parse(x)) 
       .ToArray(); 

Eine Regex-Lösung ist auch möglich,

var buf = Regex.Matches(data,@"\d+").Cast<Match>() 
       .Select(x => byte.Parse(x.Value)) 
       .ToArray(); 
Verwandte Themen