luciepaul
asked on
C# Problem convertion from vb6
I try to translate a VB6 proc to c# and can't !! (I'm a C# beginner)
I have troubles with the variables types and the translation from the VB6 "&" to the C# "||"
Could an expert help me
Here comes the original VB6 code and my "translation"
The original VB6 proc
My C# translation
I have troubles with the variables types and the translation from the VB6 "&" to the C# "||"
Could an expert help me
Here comes the original VB6 code and my "translation"
The original VB6 proc
Private Sub GetStatusBits()
Dim Digit As Integer
Dim nSpO2_StatusBit(7) As Integer 'used for DF1 also
im nSpO2_Status As Integer 'Use for DF1 also
Dim nStat2 As Integer
'CONVERT SPO2 STATUS BYTE TO BINARY BYTE ARRAY
For Digit = 7 To 0 Step -1
If (nSpO2_Status And (2 ^ Digit)) Then
nSpO2_StatusBit(Digit) = 1
Else
nSpO2_StatusBit(Digit) = 0
End If
If (nStat2 And (2 ^ Digit)) Then
nStat2Bit(Digit) = 1
Else
nStat2Bit(Digit) = 0
End If
Next Digit
End Sub
My C# translation
private void GetStatusBits()
{
int Digit = 0;
//CONVERT SPO2 STATUS BYTE TO BINARY BYTE ARRAY
for (Digit = 7; Digit >= 0; Digit += -1)
{
if ((nSpO2_Status )& (Math.Pow(2, Digit))))
{
nSpO2_StatusBit[Digit] = 1;
}
else
{
nSpO2_StatusBit[Digit] = 0;
}
if ((nStat2 = 0) // & (Math.Pow(2, Digit))))
{
nStat2Bit[Digit] = 1;
}
else
{
nStat2Bit[Digit] = 0;
}
}
}
Where is the declaration for nStat2Bit in your original VB6 code?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Hi,
Please explain the error and problems, but what i have conceived is as following:
First of all you have not declared nSpO2_StatusBit in your c# code.
Secondly in VB nSpO2_StatusBit(7) means you have 8 element in array from 0 to 7. On the other hand you have only 7 elements in c# from 0 to 6.
Thanks
Please explain the error and problems, but what i have conceived is as following:
First of all you have not declared nSpO2_StatusBit in your c# code.
Secondly in VB nSpO2_StatusBit(7) means you have 8 element in array from 0 to 7. On the other hand you have only 7 elements in c# from 0 to 6.
Thanks
Be sure to make the change that IJZ mentioned. Change line 4 to:
I always seem to forget that little detail when translating VB to C# : )
int[] nSpO2_StatusBit = new int[8];
I always seem to forget that little detail when translating VB to C# : )