我想从txt文件中获取特定的字符串,之后将字符串转换为byte,例如我有这个txt文件:
“一”
ID_NUMBER:* = 344E6F4D6F7265486178785454332100
“二”
ID_NUMBER:* = 3536336A775E3825246E773543563437
“三”
ID:_number * = BDBD2EB72D82473DBE09F1B552A8983
现在我想要的是搜索标题,然后获取标题的id_number,之后将其转换为类似于标题的字节:
两个( byte [] two = new byte [] {0xBD,0xBD,0x2E,0xB7,0x2D,0x82,0x47,0x3D,0xBE,0x09,0xF1,0x1B,0x55,0x2A,0x89,0x83};
我试试这个但是不能工作:
string[] s = File.ReadAllLines("MyFilePath.txt");
List<byte[]> byteArrays = new List<byte[]>();
foreach (string st in s.Where(x => x.Trim().StartsWith("id_number:*=")).Select(x => x.Skip(12)))
{
byte[] b = new byte[(int)((st.Length + 1) / 2)];
for (int i = 0; i < (int)((st.Length + 1) / 2); i++)
{
var byteString = (st.Skip(2 * i).Length > 2) ? st.Skip(2 * i).Take(2) : "0"+st.Skip(2 * i);
var bt = Convert.ToByte(byteString, 16);
b[i] = bt;
}
byteArrays.Add(b);
}
我现在不能把标题放在哪里?
请帮助
答案 0 :(得分:0)
selman22所说的是正确的。
我已对您的代码进行了更改以使其正常工作。这是工作代码。
string[] s = File.ReadAllLines(@"E:\test\test.txt");
var byteArrays = new List<byte[]>();
foreach (string st in s.Where(x => x.Trim().StartsWith("id_number:*=")).Select(x => new string(x.Skip(12).ToArray())))
{
byte[] b = new byte[(int)((st.Length + 1) / 2)];
for (int i = 0; i < (int)((st.Length + 1) / 2); i++)
{
var byteString = ((st.Skip(2 * i).Count() > 2) ? new string(st.Skip(2 * i).Take(2).ToArray()) : "0" + new string(st.Skip(2 * i).ToArray()));
var bt = Convert.ToByte(byteString, 16);
b[i] = bt;
}
byteArrays.Add(b);
}