Condividi tramite

VBA-->VB.NET / StrConv(xxxx,vbUnicode)--> ????

Anonimo
2016-04-15T05:55:00+00:00

Salve a tutti, sto cercando di tradurre in VB.NET una vecchia applicazione scritta in VBA e ho problema con lo StrConv e il vbUnicode.

In VBA per Excel ho questo:

Dim keyInBytes() As Byte

Dim keyByteString As String

keyByteString = StrConv(keyInBytes, vbUnicode)

dove:

keyInBytes è un array con un'unica colonna contenente i seguenti dati {171, 25, 82, 253, 173, 182, 233, 84, 84, 199, 208, 121, 62, 110, 103, 2, 21, 145, 140, 19, 94, 7, 199, 73

}

In questo modo keyByteString è uguale a questo valore:    

In VB.NET ho provato in diversi modi a riprodurre lo stesso risultato:

keyByteString = System.Text.Encoding.GetEncoding(1252).GetString(keyInBytes)

risultato --> "«" & ChrW(25) & "Rý­¶éTTÇÐy>ng" & ChrW(2) & ChrW(21) & "‘Œ" & ChrW(19) & "^" & ChrW(7) & "ÇI"

keyByteString = System.Text.Encoding.Unicode.GetString(keyInBytes)

risultato --> "ᦫﵒ뚭哩읔秐渾ɧ鄕ᎌݞ䧇"

keyByteString = System.Text.ASCIIEncoding.ASCII.GetString(keyInBytes)

risultato --> "?" & ChrW(25) & "R????TT??y>ng" & ChrW(2) & ChrW(21) & "??" & ChrW(19) & "^" & ChrW(7) & "?I"

etc...

Ma in nessuno di questi metodi ottengo lo stesso risultato ottenuto con VBA (il metodo che ci va più vicino è il primo ma si perde alcuni caratteri).

Il problema sono alcuni caratteri (credo quelli sotto al ChrW(32)) che vengono trovati e decodificati in un modo con il codice di VBA ma non vengono trovati e decodificati con il codice VB.NET.

Sapete come posso fare per ottenere con VB.NET lo stesso risultato di VBA?

Grazie in anticipo per gli eventuali aiuti.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

0 risposte aggiuntive

Ordina per: Più utili