Uncategorized

Da bytes a stringa

A prima vista questo argomento può sembrare una sciocchezza, tuttavia l’esperienza mi ha mostrato che non pochi programmatori hanno incontrato problemi nell’affrontare un problema come questo
Capita spesso di dover manipolare una funzione che restituisca come risultato un Array di Bytes: ai fini della lettura umana, è importante ricavare da questo array una stringa di caratteri.
Nonostante il compito sembri complesso, .NET mette a disposizione un metodo estremamente semplice per far fronte al problema.
Esaminate il frammento di codice seguente


Dim hashBytes() As Byte
Dim hashString As New StringBuilder</p>
For i As Integer = 0 To hashBytes.Length - 1
hashString.Append(hashBytes(i).ToString("x2"))
Next

Questo codice è tratto dal mio software MD5Checker e, in questo caso particolare, serve a convertire in una stringa il risultatodel metodo MD5CryptoServiceProvider.ComputeHash ma ovviamente si applica in svariati altri casi.
hashBytes è l’array che contiene la sequenza di bytes da convertire, mentre hashString è l’oggetto StringBuilder che conterrà lastringa risultante.
Come vedete, per prima cosa si imposta un ciclo For che iteri ogni singolo byte dell’array, ma il vero cuore della funzione di conversioneè il metodo ToString(“x2”), questo si occupa effettivamente della trasformazione del byte nel corrispondete carattere. I caratteri vengonopoi accodati allo StringBuilder con il metodo append e, alla fine, la stringa risultante si può ottenere semplicemente chiamando ilmetodo ToString dello StringBuilder.
Come vedete, un’altra volta, il Framework ci mette a disposizione una soluzione tutto sommato semplice a un problema apparentemente complesso e sicuramente molto comune

Annunci
Standard

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...