Pytanie : 10 linia C# VB.NET przekładowy

Cześć,

I potrzeba ekspert the przekład vb.net linia kod, od C# VB.NET
I use VB.NET 2008 i I potrzebować StringToHex i HexToString który wspierać Unicode Charakter, w VB.NET. I zakładać the próbka tamte dwa funkcja w C#, i adaptować ten kod dla VB.NET.

The adaptować VB.NET kod praca prawie identyczny, the jedyny różnica być praca w the VB.NET wersja pojawiać się jeden więcej charakter, przy the końcówka the rezultat. Ten charakter być: Unicode Charakter "ZASTĘPSTWO CHARAKTER" (U+FFFD).

Although, I robić kod ten charakter, I polubić czysty funkcja StringToHex i HexToString w VB.NET.

So, I ciekawić dokąd dokładnie I robić the niedokładny adaptacja C# kod VB.NET kod, i dlaczego the kod, dato che czysty funkcja bez the Unicode character.

The C# kod I znajdować być przy ten strona:
http://www.eggheadcafe.com /sample-code/csharp.NET/5c5e050f-7509-4ed5-aa58-6fd01ff2b3c6/c-net.aspx

The VB.NET adaptacja the C# kod być rel=:
-----------------------------------------------------------------------------------------------------------
Społeczeństwo Dzielić Funkcja ConvertStringToHex (ByVal wkład Jako Sznurek, ByVal Jako System.Text.Encoding) Gdy String
Ćmić stringBytes () Gdy Bajt = encoding.GetBytes (wkład)
Ćmić sbBytes Jako StringBuilder = Nowy StringBuilder (stringBytes.Length * 2)

Ciemnawy B Jako Byte
Dla Ciemnawy B W stringBytes
sbBytes.AppendFormat (" {(0): X2} ", B)
Next

Powrotny sbBytes.ToString ()
Końcówka Function

Społeczeństwo Dzielić Funkcja ConvertHexToString (ByVal hexInput Jako Sznurek, ByVal Jako System.Text.Encoding) Gdy String
Ćmić numberChars Gdy Integer = hexInput.Length
Ćmić bajt () Gdy Bajt = Nowy Bajt (numberChars/2) {}
Ćmić i Jako Integer
Dla i = (0) NumberChars - (1) Krok 2
bajt (i/2) = Convert.ToByte (hexInput.Substring (i, 2), 16)
Next

Ćmić ReturnValue = encoding.GetString (bajt)

Jeżeli (AscW (ReturnValue.Substring(ReturnValue. Length - (1), 1)) = 65533) Then
ReturnValue = ReturnValue.Substring ((0), ReturnValue.Length - 1)
Końcówka If

Powrotny ReturnValue
Końcówka Function
-----------------------------------------------------------------------------------------------------------

The dokumentacja dla ten ten Unicode Charakter być przy ten strona:
http://www.fileformat.info /info/unicode/char/fffd/index.htm


Thank ty bardzo mocno w advance.

Odpowiedź : 10 linia C# VB.NET przekładowy

Tam  być *really* ekstra charakter. W ConvertHexToString, gdy ty tworzyć the szyk "bajt", ty powiedzieć że the przychodzić wskaźnik the szyk musieć "numberChars/2", che w ten test przychodzić ten 14. Zauważać że szyk być, gdy I powiedzieć, the to wskaźnik, NIE the liczba szczelina w the szyk. Charakter znaczyć że the wezwanie encoding.GetString () próbować to szczelina the szyk w charakter. Ty potrzebować the liczba szczelina w the szyk linia 31 twój ostatni poczta z:
(1):
Ciemnawy bajt () Jako Bajt = Nowy Bajt ((numberChars/2) - 1) {}
Inne rozwiązania  
 
programming4us programming4us