有一堆数字,都是68开始16结尾的,如68 02 31 94 11 00 00 68 11 04 33 32 34 33 89 16 FE FE FE FE 68 02 31 94 11 00 00 68 91 0C 33 32 34 33 88 34 33 33 88 34 33 33 55 16 68 02 31 94 11 00 00 68 11 04 33 32 35 33 8A 16 FE FE FE FE 68 02 31 94 11 00 00 68 91 0C 33 32 35 33 33 33 33 33 33 33 33 33 AA 16 68 02 31 94 11 00 00 68 11 04 33 32 36 33 8B 16 这样的,我想把每一个68开始16结尾的数做一组然后进行一些操作,请问这要怎么一个个的截取出来啊,我想截取出后进行操作然后继续截取继续操作。。急求大家了
解决方案 »
- 关于thead的小问题
- C# 如何实现套打???
- 在线等,installshield怎样部署.net3.5或4.0
- WINFORM程序能在windows server 2003系统下正常运行么?
- 请教一下关于C#的一些语法问题
- 如何在word文档中指定位置输入字符串?
- webform中datagrid如何获得选中行的值呢
- 请问大家现在你们工作中是用的.net2003还是.net2005?
- 非常不开心,公司经营出了问题,我要重新找工作了!~
- 将bitmap类型的图像剪切后,怎样转换成bitmap类型。急急!(请各位高手帮忙,分不够可再加)
- RichTextBox 如何实现如下效果
- 有没有办法使confirm确认框实现自动关闭
String[] Array = "68 02 31 94 11 00 00 68 11 04 33 32 34 33 89 16 FE FE FE FE 68 02 31 94 11 00 00 68 91 0C 33 32 34 33 88 34 33 33 88 34 33 33 55 16 68 02 31 94 11 00 00 68 11 04 33 32 35 33 8A 16 FE FE FE FE 68 02 31 94 11 00 00 68 91 0C 33 32 35 33 33 33 33 33 33 33 33 33 AA 16 68 02 31 94 11 00 00 68 11 04 33 32 36 33 8B 16".Split(' ');
foreach (String s in Array)
{
MessageBox.Show(s);
}
while
str[0][0] = 68
val == 16 时
str[0][n] = 16
下循环
str[1][0] = 68
str[1][n] = 16
string str = @"68 02 31 94 11 00 00 68 11 04 33 32 34 33 89 16 FE FE FE FE 68 02 31 94 11 00 00 68 91 0C 33 32 34 33 88 34 33 33 88 34 33 33 55 16 68 02 31 94 11 00 00 68 11 04 33 32 35 33 8A 16 FE FE FE FE 68 02 31 94 11 00 00 68 91 0C 33 32 35 33 33 33 33 33 33 33 33 33 AA 16 68 02 31 94 11 00 00 68 11 04 33 32 36 33 8B 16";
Regex reg = new Regex(@"68[\s\S]*?16");
MatchCollection mc = reg.Matches(str);
foreach (Match m in mc)
{
MessageBox.Show(m.Value);
}
//对m.Value做处理即可
class CsdnDemo
{
public static void test()
{
var str = "68 00 68 11 04 33 32 34 33 89 16 FE FE FE FE 68 11 00 00 68 91 0C 16 68 16 FE FE FE FE 68 02 68 91 0C 33 AA 16 68 68 16";
var arr = ToArray(str);
foreach (var s in arr)
{
Console.WriteLine("*" + s + "*");
} //var str = "68 02 31 94 11 00 00 68 11 04 33 32 34 33 89 16 FE FE FE FE 68 02 31 94 11 00 00 68 91 0C 33 32 34 33 88 34 33 33 88 34 33 33 55 16 68 02 31 94 11 00 00 68 11 04 33 32 35 33 8A 16 FE FE FE FE 68 02 31 94 11 00 00 68 91 0C 33 32 35 33 33 33 33 33 33 33 33 33 AA 16 68 02 31 94 11 00 00 68 11 04 33 32 36 33 8B 16";
} public static string[] ToArray(string str)
{
var chars = str.ToCharArray();
var len = chars.Length;
bool flag = false;
string v = "";
List<String> ret = new List<String>();
for (int i = 0; i < len; i++)
{
if (i < len - 2 && chars[i] == '6' && chars[i + 1] == '8' && !flag)
{
var c1 = chars[i];
var c2 = chars[i + 1];
v += c1.ToString() + c2.ToString();
i += 1;
flag = true;
}
else if (i < len - 2 && chars[i] == '1' && chars[i + 1] == '6')
{
var c1 = chars[i];
var c2 = chars[i + 1];
v += c1.ToString() + c2.ToString();
flag = false;
ret.Add(v);
v = string.Empty;
}
else
{
if (flag)
{
v += chars[i];
}
}
}
return ret.ToArray();
}
}
string[] arr = new string[] {c};//将数据存入数组
foreach (string s in arr)//循环数组中字符串
{
if (s.StartsWith("68") && s.EndsWith("16"))//判断68开始16结束的字符串
{
string[] arr1 = s.Split(' ');//下面是进行的帧是否正确的判断操作没问题。
int L = int.Parse(arr1[9], System.Globalization.NumberStyles.AllowHexSpecifier);
string[] D = arr1.Skip(10).Take(arr1.Length - 10 - 2).ToArray();
if (L == D.Length)
{
MessageBox.Show("正确!");
}
else
MessageBox.Show("错误!");
}
else
MessageBox.Show("数据有误!");
}
问题是怎么不能循环的取出68.。。16的字符串惊醒判断呢,如果只是一个68.16的字符串的话就可以
if (s.StartsWith("68") && s.EndsWith("16"))这句话也根本没起到分割成一组一组的作用
妈的全错了有什么办法吗?我现在就一个问题,怎么把这么一堆数据每次分隔成一组我判断一次分一组我判断一次
到底该怎么分成68到16的一组组数据啊?