Questione : 10 linee di C# alla sorveglianza di traduzione di VB.NET

Ciao, necessità del

I un esperto sorvegliare la traduzione di alcune linee di codice, da C# ad uso VB.NET 2008 ed io di VB.NET
I è stato necessario uno StringToHex e un HexToString che sostengono i caratteri di Unicode, in VB.NET. Ho trovato il campione di quelle due funzioni in C# ed ho adattato questo codice per gli impianti adattati/>The di codice di VB.NET.


Although, ho fatto il codice per eliminare questo carattere, vorrei avere funzioni pulite di StringToHex e di HexToString in VB.NET.

So, sono interessato sapere dove ho fatto esattamente l'adattamento inesatto del codice di C# al codice di VB.NET e riparare il codice, dato che avere funzioni pulite senza sbagliato il codice che di Unicode character.

The C# ho trovato è a questa pagina: il rel= " nofollow "„ del _blank„„ del target= " di http://www.eggheadcafe.com/sample-code/csharp.NET/5c5e050f-7509-4ed5-aa58-6fd01ff2b3c6/c-net.aspx del href= del
adattamento del /sample-code/csharp.NET/5c5e050f-7509-4ed5-aa58-6fd01ff2b3c6/c-net.aspx

The VB.NET di http://www.eggheadcafe.com del codice di C# è questo:
----------------------------------------------------------------------------------------------------------la funzione comune pubblico ConvertStringToHex (ByVal del -
immesso come codifica di ByVal, della stringa come System.Text.Encoding) come String
oscura gli stringBytes () come byte = gli sbBytes fiochi del
di encoding.GetBytes (input) come StringBuilder = nuovo StringBuilder (stringBytes.Length * 2)

b fioca come Byte
per ogni b nello stringBytes
sbBytes.AppendFormat („ {0: X2} “, pubblico di ritorno di Function

di conclusione del
del b)
Next

sbBytes.ToString () ha ripartito la funzione ConvertHexToString (hexInput di ByVal come codifica di ByVal, della stringa come System.Text.Encoding) come String
oscura i numberChars come il numero intero = byte fiochi di hexInput.Length
() come byte = nuovo byte (numberChars/2) {}
i fioca come Integer
per i = 0 ai numberChars - 1 byte di punto 2
(i/2) = Convert.ToByte (
Next

di hexInput.Substring (i, 2), 16) oscurano il

di encoding.GetString = di ReturnValue (byte) se (AscW (ReturnValue.Substring (ReturnValue. Length - 1, 1)) = 65533) Then
ReturnValue = ReturnValue.Substring (0, ReturnValue.Length - estremità di ritorno Function
di If

ReturnValue
di conclusione di 1)
----------------------------------------------------------------------------------------------------------la documentazione del -

The per questo carattere indesiderato di Unicode è a questa pagina: rel= " nofollow "„ del _blank„„ del target= " di http://www.fileformat.info/info/unicode/char/fffd/index.htm del href= del
/info/unicode/char/fffd/index.htm


Thank di http://www.fileformat.info voi molto in anticipo.
class= del

Risposta : 10 linee di C# alla sorveglianza di traduzione di VB.NET

Ci non è *really* un il carattere supplementare. In ConvertHexToString, quando avete generato l'allineamento “byte„, avete detto che l'indice più elevato dell'allineamento dovrebbe essere “numberChars/2„, che in questa prova esce a 14. Si noti che questo è, ho detto, l'indice più elevato, NON il numero delle scanalature nell'allineamento. Ciò significa che la chiamata a encoding.GetString () sta provando a convertire una scanalatura uninitialized dell'allineamento in carattere. Dovete ridurre il numero delle scanalature nell'allineamento sostituendo la linea 31 di vostro ultimo alberino con:
1:
Byte fiochi () come byte = nuovo byte ((numberChars/2) - 1) {}
Altre soluzioni  
 
programming4us programming4us