# encoding: ascii
# api: powershell
# title: ShowUI Text Converter
# description: Requires the ShowUI module available to download from here: http://showui.codeplex.com/releases/view/73603
# version: 0.1
# type: module
# author: Boe Prox
# license: CC0
# function: Convert-TextToBinary
# x-poshcode-id: 2965
# x-archived: 2016-10-03T02:43:56
# x-published: 2011-09-23T21:01:00
#
# This is a fun UI that lets you convert various types of input into something else. More info available at my blog: http://learn-powershell.net/2011/09/23/showui-text-converter-for-fun-and-profitmostly-fun/
# Currently available conversions are:
# TextToBinary
# BinaryToText
# TextToHex
# HexToText
# BinaryToHex
# HexToBinary
# ReverseInput
#
#Import-Module showui
$Windowparam = @{
Width = 500
Height = 400
Title = 'Fun Text Converter'
Background = '#C4CBD8'
WindowStartupLocation = 'CenterScreen'
AsJob = $True
}
#Create Window
New-Window @Windowparam {
New-Grid -Rows *,Auto,*,Auto -Children {
New-TextBox -Row 0 -Name InputBox -TextWrapping Wrap -VerticalScrollBarVisibility Auto
New-Grid -Row 1 -Columns *,*,Auto,Auto,Auto,*,* -Children {
New-Button -Column 2 -Name ConvertButton -Width 65 -Height 25 -Content Translate -On_Click {
If ($ComboBox.Text -eq 'TextToBinary') {
$OutputBox.Text = Convert-TextToBinary $InputBox.Text
} ElseIf ($ComboBox.Text -eq 'BinaryToText') {
$OutputBox.Text = Convert-BinaryToText $InputBox.Text
} ElseIf ($ComboBox.Text -eq 'TextToHex') {
$OutputBox.Text = Convert-TextToHex $InputBox.Text
} ElseIf ($ComboBox.Text -eq 'HexToText') {
$OutputBox.Text = Convert-HexToText $InputBox.Text
} ElseIf ($ComboBox.Text -eq 'BinaryToHex') {
$OutputBox.Text = Convert-BinaryToHex $InputBox.Text
} ElseIf ($ComboBox.Text -eq 'HexToBinary') {
$OutputBox.Text = Convert-HexToBinary $InputBox.Text
} ElseIf ($ComboBox.Text -eq 'ReverseInput') {
$OutputBox.Text = Convert-TextToReverseText $InputBox.Text
}
}
New-Label -Column 3
New-ComboBox -Name ComboBox -Column 4 -IsReadOnly:$True -SelectedIndex 0 -Items {
New-TextBlock -Text TextToBinary
New-TextBlock -Text BinaryToText
New-TextBlock -Text TextToHex
New-TextBlock -Text HexToText
New-TextBlock -Text BinaryToHex
New-TextBlock -Text HexToBinary
New-TextBlock -Text ReverseInput
}
}
New-TextBox -Row 2 -Name OutputBox -IsReadOnly:$True -TextWrapping Wrap `
-VerticalScrollBarVisibility Auto
New-StackPanel -Row 3 -Orientation Horizontal {
New-Button -Name CopyTextButton -Width 65 -Height 25 -HorizontalAlignment Left -Content CopyText -On_Click {
$OutputBox.text | clip
}
New-Label
New-Button -Name ClearTextButton -Width 65 -Height 25 -HorizontalAlignment Left -Content ClearText -On_Click {
$OutputBox.Text=$Null
}
}
}
} -On_Loaded {
Function Convert-TextToBinary {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeLine='True')]
[string]$Text
)
Begin {
#Create binary empty collection
[string[]]$BinaryArray = @()
}
Process {
#Convert text to array
$textarray = $text.ToCharArray()
#Convert each item to binary
ForEach ($a in $textarray) {
$BinaryArray += ([convert]::ToString([int][char]$a,2)).PadLeft(8,"0")
}
}
End {
#Write out binary string
[string]::Join(" ",$BinaryArray)
}
}
Function Convert-BinaryToText {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeLine='True')]
[string]$Binary
)
Begin {
#Create binary empty collection
[string[]]$TextArray = @()
}
Process {
#Split Binary string into array
$BinaryArray = $Binary -split "\s"
#Convert each item to Char
ForEach ($a in $BinaryArray) {
$TextArray += [char]([convert]::ToInt64($a,2))
}
}
End {
#Write out text string
[string]::Join("",$TextArray)
}
}
Function Convert-TextToHex {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeLine='True')]
[string]$Text
)
Begin {
#Create hex empty collection
[string[]]$HexArray = @()
}
Process {
#Convert text to array
$textarr = $text.ToCharArray()
#Convert each item to binary
ForEach ($a in $textarr) {
$HexArray += "0x$(([convert]::ToString([int][char]$a,16)).PadLeft(8,'0'))"
}
}
End {
#Write out hex string
[string]::Join(" ",$HexArray)
}
}
Function Convert-HexToText {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeLine='True')]
[string]$Hex
)
Begin {
#Create text empty collection
[string[]]$textarr = @()
}
Process {
#Split Binary string into array
$HexArray = $Hex -split "\s"
#Convert each item to Char
ForEach ($a in $HexArray) {
$textarr += [char]([convert]::ToInt64($a.TrimStart('x0'),16))
}
}
End {
#Write out text string
[string]::Join("",$textarr)
}
}
Function Convert-HexToBinary {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeLine='True')]
[string]$Hex
)
Begin {
#Create binary empty collection
[string[]]$binarr = @()
}
Process {
#Split Binary string into array
$HexArray = $Hex -split "\s"
#Convert each item to Char
ForEach ($a in $HexArray) {
$a = ([char]([convert]::ToInt64($a.TrimStart('x0'),16)))
$binarr += ([convert]::ToString([int][char]$a,2)).PadLeft(8,"0")
}
}
End {
#Write out binary string
[string]::Join(" ",$binarr)
}
}
Function Convert-BinaryToHex {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeLine='True')]
[string]$Binary
)
Begin {
#Create binary empty collection
[string[]]$TextArray = @()
}
Process {
#Split Binary string into array
$BinaryArray = $Binary -split "\s"
#Convert each item to Char
ForEach ($a in $BinaryArray) {
$a = [char]([convert]::ToInt64($a,2))
$TextArray += "0x$(([convert]::ToString([int][char]$a,16)).PadLeft(8,'0'))"
}
}
End {
#Write out hex string
[string]::Join(" ",$TextArray)
}
}
Function Convert-TextToReverseText {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeLine='True')]
[string]$InputString
)
Begin {
}
Process {
#Convert text to array
$inputarray = $InputString -split ""
#Reverse array
[array]::Reverse($inputarray)
}
End {
#Write out reverse string
[string]::Join("",$inputarray)
}
}
}