Desktop
Website
Multimedia
Database
Security
Enterprise
Vraag : 10 lijnen van C# aan Het vertaal controleren
Hallo, vereist
I een deskundige om de vertaling van een paar lijnen van code, van C# aan VB.NET
I gebruik VB.NET 2008 te controleren en ik was nodig een StringToHex en een HexToString die Karakters Unicode, in VB.NET steunen. Ik vond de steekproef van die twee functies in C#, en heb deze code voor VB.NET.
The aangepaste VB.NET bijna identieke codewerken aangepast, is het enige verschil dat in de VB.NET versie één meer karakter, aan het eind van het resultaat lijkt. Dit karakter is: Het Karakter het „KARAKTER van Unicode van de VERVANGING“ (U+FFFD).
Although, heb ik code gemaakt om dit karakter te elimineren, zou ik schone functies van StringToHex willen hebben en HexToString in VB.NET.
So, ben ik geinteresseerd om te weten waar precies ik de onnauwkeurige aanpassing van code C# aan code VB.NET heb gemaakt, en hoe te om de code te bevestigen, voor het hebben van schone functies zonder verkeerd de code/>
The C# van Unicode character.
http://www.eggheadcafe.com
/sample-co
de/csharp.
NET/5c5e05
0f-
7509-4e
d5-aa58-6f
d01ff2b3c6
/c-net.asp
x
The VB.NET van de code C# is dit:
-
Gedeelde die Overheidsfunctie ConvertStringToHex (ByVal als Koord, het coderen ByVal als System.Text.Encoding wordt ingevoerd) als/> Schemerige stringBytes String
Schemerige sbBytes encoding.GetBytes als StringBuilder = Nieuwe StringBuilder (stringBytes.
Length * 2)
Schemerige B als Byte
voor Elke B in stringBytes
sbBytes.AppendFormat (“ {0: X
2} „, Overheidsfunctie ConvertHexToString van Function
Next
Terugkeer sbBytes.ToString ()/> de Gedeelde/> (ByVal hexInput als Koord, het coderen ByVal als System.Text.Encoding) als/> Schemerige numberChars String
Schemerige bytes hexInput.Length
Schemerige I als Integer
voor I = 0 aan numberChars - de bytes van 1 Stap 2
(I/2) = Convert.ToByte (hexInput.Su
bstring (I,
2), 16)
Next
Schemerige ReturnValue = encoding.GetString (bytes)
als (AscW(ReturnValue.Substrin
g (ReturnVa
lue. Length
- 1, 1)) = 65533) Then
ReturnValue = (0, ReturnValue.Length - 1)
het Eind van ReturnValue
/> Function
-
The- documentatie voor dit ongewenste Karakter Unicode bij deze pagina:
http://www.fileformat.info
/info/unic
ode/char/f
ffd/index.
htm
Thank u zeer vooraf.
Antwoord : 10 lijnen van C# aan Het vertaal controleren
Er is *really* geen extra karakter. In ConvertHexToString, toen u de serie „bytes“ cre�ërde, zei u dat de meest bovenste index van de serie zou moeten zijn „numberChars/2“, wat in deze test uit aan 14 komt. Merk op dat dit, zoals ik zei, de meest bovenste index, NIET het aantal groeven in de serie is. Dit betekent dat de vraag aan encoding.GetString () probeert om om te zetten uninitialized groef van de serie in een karakter. U moet het aantal groeven in de serie verminderen door te vervangen lijn 31 van uw laatste post met:
1:
Schemerige bytes () als Byte = Nieuwe Byte ((numberChars/2) - 1) {}
Andere oplossingen
Somebody verzendt emialsvorm mijn hotmailrekening
een programma probeert om het volgende e-mailbericht uit uw naam te verzenden - de Levende post van Vensters
Kleine Statische IP Bedrijfs van de Server 2008 verandering
sharepoint stichting 2010 op met 32 bits?
Word 2003 die - met lijsten, rijen, en cellen werken
Navigeer aan de pagina van een specifiek punt op een gridview
Hyperlink die het diagram/de Tekening activeren
Apple iWeb - hoe te om HTML aan Schijf de website via FTP te publiceren te bewaren of?
sql - datumformaat
Het van een lus voorzien over de tellers van googlekaarten v3