数组问题,在线等 本帖最后由 xiaotiange 于 2010-07-30 09:18:43 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把hiOrder设置成数组,然后改成cmd[2]=hiOrder[index],这个index可以自己处理。cmd循环,那index的值也可以设置为跟着变。 是的我将hiOrder设置成数组了,并且是锯齿数组……但可能是写法不对,hiOrder[i]仍然只输出0x2a,前面都被覆盖我也不知道怎样写了…… temp=new byte[1][]; for (int i = 0; i < 11;i++ ) { temp[0] = new byte[11] { 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a}; cmd[2]=temp[0][i]; hiOrder = temp[0][i]; } 在你的发送循环中,比如:int[] temp = new int[11] { 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a};int loopHiOrder(){ static byte n = -1; if (++n == 11) { n = -1; return temp[11]; }else return temp[++n];}for(;;){ //发送前 cmd[2] = loopHiOrder(); //发送代码} byte[] temp = new byte[] { 0x01, 0x01, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x01, 0x00, 0x0A }; foreach (byte i in temp) { Console.WriteLine(i); } cmd = new byte[8]; int Max_Val = 0x2a; int Min_Val = 0x20; for(int cnt=Min_Val;cnt=<Max_Val;cnt++) { cmd[0] = 0x01; cmd[1] = 0x01; cmd[2] = cnt; //hiOrder; //hiOrder从0x20--0x2a cmd[3] = 0x01; cmd[4] = 0x00; cmd[5] = 0x0A; UInt16 crccode = CRC16(cmd, 6); cmd[6] = Convert.ToByte(crccode / 256); cmd[7] = Convert.ToByte(crccode % 256)[/align] Port.Write(cmd);//send }呵呵,投机取巧哦。似乎能满足你~ static int n = -1; int loopHiOrder() { int[] temp = new int[11] { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a }; if (++n == 10) { n = -1; return temp[10]; } else return temp[++n]; } private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 20;i++ ) { textBox1.Text += loopHiOrder().ToString() + System.Environment.NewLine; } }我测试下 VS2008 测试无问题~ 出现以下错误,请问大家是因为同步Socket中有问题,还是异步中有问题呢? 奇了大怪了,C#文件读入后写不了UTF-8编码的文件========= C#接口强制转换出错问题,高分求方法(不好意思就58分了) 字符串判断 listview问题 求一个xml读取属性值的程序 初学者请教C#.net的response.write OracleCommand.Prepare() 是干吗用的? c#的server服务怎么做有界面的 哪里有NET BETA2 下载啊?我找了很久了,请知者说来听听,我会给分的 基于VFW开发的摄像头视频捕获最大分辨率是多少? 关于正则表达式验证身份证的问题
我将hiOrder设置成数组了,并且是锯齿数组……但可能是写法不对,hiOrder[i]仍然只输出0x2a,前面都被覆盖
我也不知道怎样写了…… temp=new byte[1][];
for (int i = 0; i < 11;i++ )
{
temp[0] = new byte[11] { 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a};
cmd[2]=temp[0][i];
hiOrder = temp[0][i];
}
int loopHiOrder()
{
static byte n = -1;
if (++n == 11)
{
n = -1;
return temp[11];
}
else
return temp[++n];
}for(;;)
{
//发送前
cmd[2] = loopHiOrder();
//发送代码}
byte[] temp = new byte[] { 0x01, 0x01, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x01, 0x00, 0x0A };
foreach (byte i in temp)
{
Console.WriteLine(i);
}
int Max_Val = 0x2a;
int Min_Val = 0x20;
for(int cnt=Min_Val;cnt=<Max_Val;cnt++)
{
cmd[0] = 0x01;
cmd[1] = 0x01;
cmd[2] = cnt; //hiOrder; //hiOrder从0x20--0x2a
cmd[3] = 0x01;
cmd[4] = 0x00;
cmd[5] = 0x0A;
UInt16 crccode = CRC16(cmd, 6);
cmd[6] = Convert.ToByte(crccode / 256);
cmd[7] = Convert.ToByte(crccode % 256)[/align]
Port.Write(cmd);//send
}呵呵,投机取巧哦。似乎能满足你~
int loopHiOrder()
{
int[] temp = new int[11] { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a };
if (++n == 10)
{
n = -1;
return temp[10];
}
else
return temp[++n];
} private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 20;i++ )
{
textBox1.Text += loopHiOrder().ToString() + System.Environment.NewLine;
}
}我测试下 VS2008 测试无问题~