文章作者:意识
信息来源:邪恶八进制 中国
最近在学VB.net好郁闷啊,随便写一个吧
'将字符串转化成ASCII的程序
'作者:意识
Option Explicit On
Option Strict On
Public Class frmAscii
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents lblOutput As System.Windows.Forms.Label
Friend WithEvents rtbInput As System.Windows.Forms.RichTextBox
Friend WithEvents btnExit As System.Windows.Forms.Button
Friend WithEvents btnClear As System.Windows.Forms.Button
Friend WithEvents btnConvert As System.Windows.Forms.Button
Friend WithEvents btnConvertToHex As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label
Me.rtbInput = New System.Windows.Forms.RichTextBox
Me.Label2 = New System.Windows.Forms.Label
Me.lblOutput = New System.Windows.Forms.Label
Me.btnConvert = New System.Windows.Forms.Button
Me.btnExit = New System.Windows.Forms.Button
Me.btnClear = New System.Windows.Forms.Button
Me.btnConvertToHex = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(48, 40)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(103, 17)
Me.Label1.TabIndex = 6
Me.Label1.Text = "输入要转换的代码"
'
'rtbInput
'
Me.rtbInput.Location = New System.Drawing.Point(32, 72)
Me.rtbInput.Name = "rtbInput"
Me.rtbInput.Size = New System.Drawing.Size(160, 144)
Me.rtbInput.TabIndex = 0
Me.rtbInput.Text = ""
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(280, 40)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(79, 17)
Me.Label2.TabIndex = 7
Me.Label2.Text = "转换后的代码"
'
'lblOutput
'
Me.lblOutput.BackColor = System.Drawing.SystemColors.Window
Me.lblOutput.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblOutput.Location = New System.Drawing.Point(224, 72)
Me.lblOutput.Name = "lblOutput"
Me.lblOutput.Size = New System.Drawing.Size(256, 144)
Me.lblOutput.TabIndex = 1
'
'btnConvert
'
Me.btnConvert.Location = New System.Drawing.Point(56, 240)
Me.btnConvert.Name = "btnConvert"
Me.btnConvert.TabIndex = 2
Me.btnConvert.Text = "十进制"
'
'btnExit
'
Me.btnExit.Location = New System.Drawing.Point(392, 240)
Me.btnExit.Name = "btnExit"
Me.btnExit.TabIndex = 5
Me.btnExit.Text = "退出"
'
'btnClear
'
Me.btnClear.Location = New System.Drawing.Point(272, 240)
Me.btnClear.Name = "btnClear"
Me.btnClear.TabIndex = 4
Me.btnClear.Text = "清除"
'
'btnConvertToHex
'
Me.btnConvertToHex.Location = New System.Drawing.Point(160, 240)
Me.btnConvertToHex.Name = "btnConvertToHex"
Me.btnConvertToHex.TabIndex = 3
Me.btnConvertToHex.Text = "十六进制"
'
'frmAscii
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(512, 286)
Me.Controls.Add(Me.btnConvertToHex)
Me.Controls.Add(Me.btnClear)
Me.Controls.Add(Me.btnExit)
Me.Controls.Add(Me.btnConvert)
Me.Controls.Add(Me.lblOutput)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.rtbInput)
Me.Controls.Add(Me.Label1)
Me.Name = "frmAscii"
Me.Text = "ASCII代码转换器"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub btnConvert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvert.Click
'得到字符数组
Dim chaInput() As Char
chaInput = rtbInput.Text.ToCharArray()
Dim intInputSize As Integer = rtbInput.Text.Length
'遍历字符数组
Dim intOutput(intInputSize) As Integer
Dim strOutput(intInputSize) As String
Dim i As Integer
For i = 0 To intInputSize - 1
intOutput(i) = Asc(chaInput(i))
strOutput(i) = Convert.ToString(intOutput(i))
Next
'显示输出
lblOutput.Text = String.Join(",", strOutput)
btnClear.Focus()
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
rtbInput.Text = ""
lblOutput.Text = ""
End Sub
Private Sub btnConvertToHex_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvertToHex.Click
'得到字符数组
Dim chaInput() As Char
chaInput = rtbInput.Text.ToCharArray()
Dim intInputSize As Integer = rtbInput.Text.Length
'遍历字符数组
Dim intOutput(intInputSize) As Integer
Dim intTemp As Integer
Dim strOutput(intInputSize) As String
Dim i As Integer
For i = 0 To intInputSize - 1
intTemp = Asc(chaInput(i))
If intTemp < 0 Then
intTemp = intTemp + 65536
End If
intOutput(i) = intTemp
strOutput(i) = Convert.ToString(Hex(intOutput(i)))
Next
'显示输出
lblOutput.Text = String.Join("H,", strOutput)
btnClear.Focus()
End Sub
End Class
郁闷啊
程序的原理很简单。在大多少的程序语言中,字符变量char实际上是以整数的int(integer)的形式保存的,转换用的是ASCII代码。所以整个程序的过程就是,得到输入,并用相应的格式输出就好了,。当然不同的语言用的方法是不同的。有的需要串(String的处理)但是过程都是一样的。