Olá pessoal, há algumas semanas atrás estava em um grupo de Powershell no Facebook e estavamos discutindo palavras chave para definir “Powershell” e um amigo teve a idéia de começarmos a escrever em ASCII,
Podemos fazer o processo consultando a tabela:
Mas qual a graça? Foi então que lançaram um desafio para escrever uma função que fizesse a conversão de STRING para ASCII usando powershell.
A conversão é simples, basta converter para System.Char e em seguida para System.Int que pode ser feita usando Type Accelerators, porém ele converte letra a letra e retorna uma Array, entao para suportar multiplos caracteres adicionamos mais um par de colchetes no Type accelerator, para dizer que ele suporta multiplos valores:
[int[]][char[]]"GuidoOliveira.com"
Temos então, o seguinte resultado:
Para facilitar a leitura podemos agrupar a array usando uma virgula como separador, vamos utilizar o método Join() da classe System.String:
[String]::Join(",",$([int[]][char[]]"GuidoOliveira.com"))
O resultado final é essa função para converter String para ASCII:
function Convertto-Char { Param ( [Parameter(Mandatory=$true)] [System.String]$String ) [String]::Join(",",$([int[]][char[]]$String)) }
Bônus – Conversão reversa para ler a mensagem de volta:
function ConvertFrom-Char { Param ( [Parameter(Mandatory=$true)] [System.String]$Char ) [String]::Join("",$($Char.Split(',') | % { [char][int]$_ })) }
E este foi o final da brincadeira 🙂
Dúvidas? Sugestões? Comente!
Até a próxima!
1 Comments
Up.