发新话题
打印

[原创]ASCII转化程序(VB.NET)

[原创]ASCII转化程序(VB.NET)

文章作者:意识
信息来源:邪恶八进制 中国

最近在学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()
      &#39;
      &#39;Label1
      &#39;
      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 = "输入要转换的代码"
      &#39;
      &#39;rtbInput
      &#39;
      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 = ""
      &#39;
      &#39;Label2
      &#39;
      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 = "转换后的代码"
      &#39;
      &#39;lblOutput
      &#39;
      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
      &#39;
      &#39;btnConvert
      &#39;
      Me.btnConvert.Location = New System.Drawing.Point(56, 240)
      Me.btnConvert.Name = "btnConvert"
      Me.btnConvert.TabIndex = 2
      Me.btnConvert.Text = "十进制"
      &#39;
      &#39;btnExit
      &#39;
      Me.btnExit.Location = New System.Drawing.Point(392, 240)
      Me.btnExit.Name = "btnExit"
      Me.btnExit.TabIndex = 5
      Me.btnExit.Text = "退出"
      &#39;
      &#39;btnClear
      &#39;
      Me.btnClear.Location = New System.Drawing.Point(272, 240)
      Me.btnClear.Name = "btnClear"
      Me.btnClear.TabIndex = 4
      Me.btnClear.Text = "清除"
      &#39;
      &#39;btnConvertToHex
      &#39;
      Me.btnConvertToHex.Location = New System.Drawing.Point(160, 240)
      Me.btnConvertToHex.Name = "btnConvertToHex"
      Me.btnConvertToHex.TabIndex = 3
      Me.btnConvertToHex.Text = "十六进制"
      &#39;
      &#39;frmAscii
      &#39;
      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
      &#39;得到字符数组
      Dim chaInput() As Char
      chaInput = rtbInput.Text.ToCharArray()
      Dim intInputSize As Integer = rtbInput.Text.Length


      &#39;遍历字符数组
      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

      &#39;显示输出
      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
      &#39;得到字符数组
      Dim chaInput() As Char
      chaInput = rtbInput.Text.ToCharArray()
      Dim intInputSize As Integer = rtbInput.Text.Length


      &#39;遍历字符数组
      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

      &#39;显示输出
      lblOutput.Text = String.Join("H,", strOutput)
      btnClear.Focus()

   End Sub


End Class


郁闷啊


程序的原理很简单。在大多少的程序语言中,字符变量char实际上是以整数的int(integer)的形式保存的,转换用的是ASCII代码。所以整个程序的过程就是,得到输入,并用相应的格式输出就好了,。当然不同的语言用的方法是不同的。有的需要串(String的处理)但是过程都是一样的。
寻找辣辣!!!

TOP

发新话题