datavalue = temp
Loop Until k = 3 Or UBound(datavalue) > 27
If UBound(datavalue) > 27 And datavalue(0) = Addr Then
BitN1 = GetBit(datavalue(26), 3)
BitN2 = GetBit(datavalue(26), 7)
BitN3 = datavalue(25)
BitN4 = datavalue(24)
BitN5 = datavalue(23) For j = 1 To 3
tempr = (datavalue(2 * j + 1) * 256 + datavalue(2 * j + 2)) / 10000 * 10 ^ datavalue(23)
If tempr <> oitem(j + (Addr - 26) * 10).Value Then oitem(j + (Addr - 26) * 10).Write tempr
Next j
For m = 4 To 6
tempr = (datavalue(2 * m + 1) * 256 + datavalue(2 * m + 2)) / 10000 * 10 ^ datavalue(24)
If tempr <> oitem(m + (Addr - 26) * 10).Value Then oitem(m + (Addr - 26) * 10).Write tempr
Next m
tempr = (datavalue(2 * 7 + 1) * 256 + datavalue(2 * 7 + 2)) / 10000 * 10 ^ datavalue(25) * BitN1
If tempr <> oitem(7 + (Addr - 26) * 10).Value Then oitem(7 + (Addr - 26) * 10).Write tempr
tempr = (datavalue(2 * 8 + 1) * 256 + datavalue(2 * 8 + 2)) / 10000 * 10 ^ datavalue(25) * BitN2
If tempr <> oitem(8 + (Addr - 26) * 10).Value Then oitem(8 + (Addr - 26) * 10).Write tempr
tempr = (datavalue(2 * 9 + 1) * 256 + datavalue(2 * 9 + 2)) / 1000
If tempr <> oitem(9 + (Addr - 26) * 10).Value Then oitem(9 + (Addr - 26) * 10).Write tempr
tempr = (datavalue(2 * 10 + 1) * 256 + datavalue(2 * 10 + 2)) / 100
If tempr <> oitem(10 + (Addr - 26) * 10).Value Then oitem(10 + (Addr - 26) * 10).Write tempr
Else
RichTextBox1.Text = RichTextBox1.Text & Chr(10) + Chr(13) & Addr & "号变配电电表未上电或掉线"或者给我讲讲这段程序的大概意思,我对VB里面的关键字啥的看不懂
希望高手指点
If UBound(datavalue) > 27 And datavalue(0) = Addr ThenIf tempr <> oitem(j + (Addr - 26) * 10).Value Then oitem(j + (Addr - 26) * 10).Write tempr
这两行 不懂 UBound是啥 If tempr <>怎么解释
共同学习.Net技术,分享.Net学习资料,分享.Net工作机会
k = k + 1
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.Output = SendValue
Sleep (200)
temp = MSComm1.Input
datavalue = temp
Loop Until k = 3 Or UBound(datavalue) > 27
If UBound(datavalue) > 27 And datavalue(0) = Addr Then
BitN1 = GetBit(datavalue(26), 3)
BitN2 = GetBit(datavalue(26), 7)
BitN3 = datavalue(25)
BitN4 = datavalue(24)
BitN5 = datavalue(23)
DO和for的关系是?
do
{
k = k + 1
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.Output = SendValue
Sleep (200)
temp = MSComm1.Input
datavalue = temp
}while(k = 3 || datavalue.length >= 27)
If (datavalue.length >= 27 && datavalue[0] == Addr)
{
BitN1 = GetBit(datavalue[26], 3)
BitN2 = GetBit(datavalue[26], 7)
BitN3 = datavalue[25]
BitN4 = datavalue[24]
BitN5 = datavalue[23] For (int j = 1; j<= 3;j++)
{
tempr = (datavalue[2 * j + 1] * 256 + datavalue[2 * j + 2)] / 10000 * 10 ^ datavalue[23]
If (tempr != oitem[j + (Addr - 26) * 10].Value)
oitem[j + (Addr - 26) * 10].Write tempr
}
For (int m = 4 ;m <= 6;m++)
{
tempr = (datavalue[2 * m + 1] * 256 + datavalue[2 * m + 2]) / 10000 * 10 ^ datavalue[24]
If (tempr != oitem[m + (Addr - 26) * 10].Value )
oitem[m + (Addr - 26) * 10].Write tempr
}
tempr = (datavalue[2 * 7 + 1] * 256 + datavalue[2 * 7 + 2]) / 10000 * 10 ^ datavalue[25] * BitN1
If (tempr != oitem[7 + (Addr - 26) * 10].Value)
oitem[7 + (Addr - 26) * 10].Write tempr
tempr = (datavalue[2 * 8 + 1] * 256 + datavalue[2 * 8 + 2]) / 10000 * 10 ^ datavalue[25] * BitN2
If (tempr != oitem[8 + (Addr - 26) * 10].Value)
oitem[8 + (Addr - 26) * 10].Write tempr
tempr = (datavalue[2 * 9 + 1] * 256 + datavalue[2 * 9 + 2]) / 1000
If (tempr != oitem(9 + (Addr - 26) * 10).Value)
oitem[9 + (Addr - 26) * 10].Write tempr
tempr = (datavalue[2 * 10 + 1] * 256 + datavalue[2 * 10 + 2]) / 100
If (tempr != oitem[10 + (Addr - 26) * 10].Value)
oitem[10 + (Addr - 26) * 10].Write tempr
}
Else
RichTextBox1.Text = RichTextBox1.Text + "\r\n" + Addr + "号变配电电表未上电或掉线"
语句 返回值
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4
这个是网络上介绍 意思是说把数组 A 的 第1个,第2个,第3个 元素 取出来
在C# 中 int[] A = new int[3]{100,3,4}
可以直接用A[0] A[1] A[2] 取出来就可以的啊
loop Until 我记得当初我上高中的时候他应该是循环的 UNTIL 是不满足什么条件的时候去循环,
对应 C# 你可以直接用 WHILE
具体 介绍你看下, 这里 有关于 while 和 until 的情况, while 时候条件 xx>100 Until 时候应该是 xx<=100
[例子]
http://images.cersp.com/article/3003/460000/469000/469005/90002787/305/300800/20070818/1356816.html
对与 循环 象
BASIC 语言 for i=1 to 10 step 1 next i 对应 C# for(int i =1 ;i<=10;i++) { 功能代码段 }IF <> 对应 C# if != C#注意大小写 , 给你发 工具
http://www.developerfusion.com/tools/convert/vb-to-csharp/ 可能有点区别 VB.NET的其他基本一样
C#版本程序基本写好了 就是还有些不明白的地方
然后UBOUND是取数组最大下标
其他的你在看下我帮你转的应该没什么问题了