2011-01-03 4 views
1

이 C# 코드에 해당하는 VB.NET (ASCII 문자열을 16 진수로 변환)은 무엇입니까? http://www.developerfusion.com/tools/convert/csharp-to-vb/ VB 변환에 C# .NET을 할 수있는 많은 도구 중 하나입니다이 C# 코드에 해당하는 VB.NET (ASCII 문자열을 16 진수로 변환)은 무엇입니까?

를 통해

public static string AsciiToHex(string asciiString) 
{ 
    string hex = ""; 

    StringBuilder sBuffer = new StringBuilder(); 
    for (int i = 0; i < asciiString.Length; i++) 
    { 
     sBuffer.Append(Convert.ToInt32(asciiString[i]).ToString("x")); 
    } 
    hex = sBuffer.ToString().ToUpper(); 

    return hex; 
} 
+0

http://www.developerfusion.com/tools/convert/csharp-to-vb/ C#을 VB.net으로 변환 할 수 있습니다. – Eugene

+1

자릿수가 가변적이라는 것을 알았습니까? – Mehrdad

답변

5

몇 가지 :

  1. foreach 모양이 작동하는 for 루프를 사용해야하는 이유는 무엇입니까? (답은 다음과 같습니다.)
  2. 올바른 서식 지정 플래그 (X)를 선택하면 ToUpper이 중복됩니다.
  3. 변수 hex은 쓸모가 없습니다.
  4. Convert.ToInt32(int)으로 줄일 수 있습니다.
  5. "ASCII"라는 이름은 실제로 잘못되었습니다. 여기서 유니 코드로 작업하고 있습니다.
  6. 일반적으로 ToString("x") 결과에는 가변 길이가 있으므로 패딩이 필요합니다. 문자 코드 < 16의 경우 단일 문자가 생성됩니다!

이 우리를 잎 :

public static string CharToHex(string str) { 
    StringBuilder buffer = new StringBuilder(); 
    foreach (char c in str) 
     buffer.AppendFormat("{0:X2}", (int) c); 
    return buffer.ToString(); 
} 

... 그리고 VB로 번역 :

Public Shared Function CharToHex(ByVal str As String) As String 
    Dim buffer As New StringBuilder() 

    For Each c As Char in str 
     buffer.AppendFormat("{0:X2}", Asc(c)) 
    End For 

    Return buffer.ToString() 
End Function 
+0

매우 깨끗한 솔루션! – Eugene

4
Public Shared Function AsciiToHex(asciiString As String) As String 
Dim hex As String = "" 
Dim sBuffer As New StringBuilder() 
For i As Integer = 0 To asciiString.Length - 1 
    sBuffer.Append(Convert.ToInt32(asciiString(i)).ToString("x")) 
Next 
hex = sBuffer.ToString().ToUpper() 
Return hex 
End Function 

,에 의해이 검색하여 찾을 수 있습니다 http://www.bing.com/search?q=c%23+to+vb+converter&src=IE-SearchBox&FORM=IE8SRC

+0

'Convert.ToInt32' 대신'AscW'를 사용할 것입니다 ... –

+0

아빠, captcha가 나를 늦추 셨습니다. – Cyclone

+0

+1, 동일 : – Cyclone

2
Public Shared Function AsciiToHex(asciiString As String) As String 
Dim hex As String = "" 

Dim sBuffer As New StringBuilder() 
For i As Integer = 0 To asciiString.Length - 1 
    sBuffer.Append(Convert.ToInt32(asciiString(i)).ToString("x")) 
Next 
hex = sBuffer.ToString().ToUpper() 

Return hex 
End Function 

http://www.developerfusion.com/tools/convert/csharp-to-vb/

+0

+1에서'AscW'를 사용하는 것이 더 바람직합니다. 나는 너의 대답을 좋아한다. ;-) – David

관련 문제