火曜日, 8月 09, 2022

Visual Studio Basic_23 
16進文字コード表示と表示桁数指定

個人的に必要になったので、文字の16進文字コード表示プログラムを適当に作成してみました。最後にダウンロードのリンクを貼っています。
画面設計はこんな感じです。Labelの順番がグチャグチャなのは、設計なしで作成した結果で特に意味はありません。

ソースの「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。 黒字が入力部分です。 赤字はコメント文なので記述の必要はありません。

-----------------

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       'ASCIIとUnicode以外のエンコーディングが、

       'サポートされなくかっているので以下のお呪いを記述。

       'Shift-JISを使う前に、

       'Encoding.RegisterProvider()をコールすればShift-JISが使える。

  'ところが、公開しているプログラムは記述しないで完成しています。

  'その後プロジェクト名を修正していて処理がややこしくてデータを

  '壊してしまったので作り直したかエラーとなりました。

  '謎すぎます。

       System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance) 

       'TextBox1をキャラクターに、

       '16進数のShift-JISコードとUnicodeを文字列に変換

        Dim a As Char = TextBox1.Text

        Dim b As String = Hex(Asc(a))

        Dim c As String = Hex(AscW(a))

       'TextBox1に何も入れずに[文字コードを表示]をクリックしたら、

  '「確認したい文字に文字を入力してください」をLabel5に表示

        If TextBox1.Text = Nothing Then

            Label5.Text = "確認したい文字に文字を入力してください"

            Exit Sub

        End If

       'Label5をリセットし、

  '入力された文字が全角文字なら6進数下4桁を表示。

  'そうでなければそのまま16進数を表示。

        Label5.ResetText()

        Dim OutputString As String

        OutputString = b

        If b.Length >= 8 Then

            Label1.Text = b.Substring(4, 4)

            Label2.Text = c

        Else

            Label1.Text = b

            Label2.Text = c

        End If

    End Sub

-----------------

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

       'TextBox1、 Label1、 Label2をリセット

        TextBox1.ResetText()

        Label1.ResetText()

        Label2.ResetText()

    End Sub

End Class

-----------------

プログラム実行後に何も文字を入力せずに[文字コード表示]をクリックすると・・・

確認したい文字に文字を入力してください」が表示されます。デザイン面でLabel5のプロパティでFontColorを「Red」に設定しておきます。

半角文字を入力した結果。Shift-JISとUnicodeは同一です。

全角英数字はShift-JIsとUnicodeが異なります。 Shift-JISで全角「a」を Ascで 求めると「 FFFF8281」となってしまうので、下4桁表示にしています。

漢字も同様です。複数の文字を入力した場合は銭湯の1文字で処理されます。

クリックするといきなりダウンロードが始まります。
実際のプログラム完成日は2022年7月23日です。
Windows版です。
Visual Studio Basic 2022