2016-04-19 2 views
0

これは本当に私の方が良くなっています。私はここでそれを使用できるようにバイト配列にレジストリの挿入用にコンマ区切りのバイナリ文字列をバイト[]に変換します。

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

:私はこれを変換する必要が

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

私は、配列に分割し、それを使用するdata.Split(',')を試みたが、私はすることができますその周りに頭を浮かべていない。

+0

あなたが最初のバイトは秒など、0で、4であることを意味しますか? – Jcl

+0

LINQ: 'data.Split( '、')を使ってそれを行うことができると思います。キャスト().ToArray();' – Logerfo

+2

@Logerfoキャスティングは動作しません。値を解析する必要があるので、 '.Cast ()'の代わりに '.Select(byte.Parse)'が必要です。 – juharr

答えて

3

私はあなたのバイト配列が値(例えば4、0、1、100を解析された必要と仮定しています、など)、各文字列のASCII値ではありません。

まず文字列の配列に変換します。その後、

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

バイトに、各文字列を変換:

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

あなたは正規表現解決策も可能であるLINQの

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(); 

を使用することができます

var buf = Regex.Matches(data,@"\d+").Cast<Match>() 
       .Select(x => byte.Parse(x.Value)) 
       .ToArray(); 
関連する問題