搜索字符串并转换为字节c#
本文关键字:字节 转换 串并 字符 字符串 搜索 | 更新日期: 2023-09-27 18:22:51
我想从txt文件中获取特定的字符串,然后将字符串转换为字节,例如,我有一个txt文件:
"一个"
id编号:*=344E6F4D6F726548617885454332100
"两个"
id编号:*=3536336A775E3825246E773543563437
"三"
id:_number*=BDBD2EB72D82473DBE09F1B552A8983
现在我想要的是搜索标题,然后得到标题的id_number,然后将其转换为一个字节,如标题所示:
二(byte[]two=新字节[]{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);
}
我现在不知道该把标题放在哪里?
请帮助
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);
}