2015-01-04 2 views
0

저는 위대한 변환 웹 사이트가 많이 있지만 VB에서 C#으로 코드를 변환하는 작업을하고 있습니다. 문서가 실제로 좋지 않기 때문에 나에게 모호한 코드를 찾습니다. 쓸모가 없다고 생각합니다. 게시하는 것에 대해 생각했습니다. 여기 내가 더 명확하게 볼 수 있는지 알아 보려고.VB 코드 이해

나는 아래의 코드에 대한 몇 가지 동화를해야하고, 무슨의 사용 버퍼 [] 아래의 방법 :

Function hexToBin(ByVal str As String, ByRef Buffer() As Byte) 
    Dim strRemain As String 
    Dim firstChar As Boolean 
    Dim i, count, inputLen, remainLen As Integer 

    i = 0 
    count = 0 
    firstChar = True 
    strRemain = str 

    While Len(strRemain) > 0 
    If Mid(strRemain, 1, 1) = " " Then 
     firstChar = True 
     strRemain = Mid(strRemain, 2) 
    ElseIf firstChar = True Then 
     If Len(strRemain) = 1 Then 
     Buffer(count) = myVal(strRemain) 
     ElseIf Len(strRemain) >= 2 Then 
     Buffer(count) = myVal(Mid(strRemain, 1, 1)) * 16 + myVal(Mid(strRemain, 2, 1)) 

     strRemain = Mid(strRemain, 3) 
     End If 

     count = count + 1 
     firstChar = False 
    Else 
     strRemain = Mid(strRemain, 2) 
    End If 
    Wend 

    hexToBin = count 
End Function 

내가이 코드가 이진에 진수로 변환 알고, 참조 이름을 제안하지만, 나는 문맥에서 Buffer []의 사용을 실제로 파악할 수 없다. 중반 문자열 VB에서 함수를 찾았으나이 함수에서 Buffer []의 사용을 알아 내지 못한다. 누군가 버퍼의 사용법을 설명한다면 감사 할 것입니다.

+0

'buffer'가 반환으로 보입니다. 그것을하기위한 적절한 방법은'hexToBin (str As String) Byte()'와 같이 버퍼를 생성하고 리턴하는 것입니다. – Plutonix

+0

이 Visual Basic 또는 vb.net입니까? – SQLDiver

+0

@SQLDiver Visual Basic –

답변

2

위의 코드에서 괄호는 배열 요소에 액세스하는 데 사용됩니다. 따라서 Buffer(i)은 배열 Buffer번째 요소를 나타냅니다.

당신은 MSDN에서 실제로 텍스트 책에서 VB에서 배열에 대한 자세한 내용은, 또는 수 : 배열 Buffer가 처음에 사용되는 이유에 관해서는 http://msdn.microsoft.com/en-us/library/wak0wfyt.aspx

은 물론 그 함수의 출력을 저장할 수 있습니다. 이 함수는 16 진수 문자열을 입력으로 받아 바이트 배열 Buffer에 이진 값을 채 웁니다.

이것은 다소 비효율적 인 코드 인 것 같습니다. 호출자에게 배열을 할당 할 것을 요청하기 때문에 다소 서투른 인터페이스를 제공합니다. 번역하기보다는 여기에서 시작한다고 생각합니다 : How can I convert a hex string to a byte array?

+2

나는 OP가 버퍼가 사용되는지를 묻고 있다고 생각한다. –

+0

네, 데이비드 감사합니다. 몇 번이나 함수를 읽은 후, 번역하기보다는 다시 작성 하겠지만, 버퍼에 대해 혼란스러워했습니다. 여러분은 바이트 배열에 대해 설명했습니다. 다시 한 번 감사드립니다. –