VB .NET- Convertendo String para Binary e vice-versa |
Neste artigo vou mostrar como converter string para binary e vice-versa usando a linguagem VB .NET. |
A conversão de string para binary e vice-versa
envolve o processo de codificar e decodificar:
A classe ASCIIEnconding representa uma codificação de caracteres ASCII de caracteres Unicode.
No processo também usamos a classe StringBuilder cujo objetivo é modificar uma string sem que seja necessário criar um novo objeto.
Por exemplo a concatenação de strings em um loop pode ser uma destas situações onde o uso de StringBuilder pode melhorar muito o desempenho do seu código.
Podemos pensar no objeto StringBuilder como um buffer dinâmico que pode conter uma String com a habilidade de aumentar seu tamanho a partir do zero até a capacidade final do buffer. O tamanho do buffer vai crescendo a medida que o tamanho dos caracteres presentes no objeto StringBuilder vai aumentando.
Outro recurso usado no processo de conversão são as Expressões Regulares.
Uma expressão regular ou regex para simplificar, é um modelo que descreve uma certa quantidade de texto. A expressão regular mais simples consiste de um único caractere.
Ex: a => Este padrão irá coincidir com a primeira ocorrência do caractere em uma string. Se a string for "Isto é apenas um teste" a primeira ocorrência será a letra a antes da letra p (de apenas).
As expressões regulares possuem 11 caracteres especiais conhecidos como meta caracteres, são eles:
Assim temos a oportunidade de rever muitos conceitos importantes no projeto de conversão.
Recursos usados :
Criando o projeto no VS Community
Abra o VS Community 2015 e clique em New Project;
A seguir selecione Visual Basic -> Windows -> Windows Forms Application;
Informe o nome Binary_ToString e clique no botão OK;
A partir da ToolBox inclua os seguintes controles no formulário form1.vb:
1 TextBox - txtString
2 Buttons - btnConverterString , btnConverterBinary
1 TextBox - txtBinary
Disponha os controles conforme o leiaute da figura abaixo:
No menu PROJECT clique em Add Class e informe o nome Conversor;
A seguir vamos definir dois métodos estáticos (Shared) nesta classe :
Public Class Conversor
Public Shared Function BinaryToString(ByVal Binary As String) As String
Try
Dim Characters As String = System.Text.RegularExpressions.Regex.Replace(Binary, "[^01]", "")
Dim ByteArray((Characters.Length / 8) - 1) As Byte
For Index As Integer = 0 To ByteArray.Length - 1
ByteArray(Index) = Convert.ToByte(Characters.Substring(Index * 8, 8), 2)
Next
Return System.Text.ASCIIEncoding.ASCII.GetString(ByteArray)
Catch
Throw
End Try
End Function
Public Shared Function StringToBinary(ByVal Text As String, Optional ByVal Separator As String = " ") As String
Try
Dim oReturn As New System.Text.StringBuilder
For Each Character As Byte In System.Text.ASCIIEncoding.ASCII.GetBytes(Text)
oReturn.Append(Convert.ToString(Character, 2).PadLeft(8, "0"))
oReturn.Append(Separator)
Next
Return oReturn.ToString
Catch
Throw
End Try
End Function
End Class
|
A seguir vamos definir no evento Click do botão - Converter para String - o seguinte código :
Private Sub btnConverter_Click(sender As Object, e As EventArgs) Handles btnConverterString.Click
Try
If Not String.IsNullOrWhiteSpace(txtBinary.Text) Then
txtString.Text = Conversor.BinaryToString(txtBinary.Text)
Else
MessageBox.Show("Informe o valor a converter", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
MessageBox.Show("Erro : " & ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
|
Este código us
Finalmente no evento Click do botão de comando - Converter para Binary - inclua o código abaixo:
Private Sub btnConverterBinary_Click(sender As Object, e As EventArgs) Handles btnConverterBinary.Click
Try
If Not String.IsNullOrWhiteSpace(txtString.Text) Then
txtBinary.Text = Conversor.StringToBinary(txtString.Text)
Else
MessageBox.Show("Informe o valor a converter", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
MessageBox.Show("Erro : " & ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
|
Executando o projeto e informando um texto para conversão obtemos o resultado abaixo:
Pegue o projeto completo aqui : Binary_ToString.zip
Disse Jesus: "Na verdade, na verdade vos digo que quem ouve a minha palavra, e
crê naquele que me enviou, tem a vida eterna, e não entrará em condenação, mas
passou da morte para a vida"
João 5:24
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
https://msdn.microsoft.com/pt-br/library/system.text.asciiencoding%28v=vs.110%29.aspx