中の技術日誌
 ホーム / 上へ

わんくまライブラリ HexToUnicodeモジュール Version1

2005/08/02

この文書はVisual Studio 2003(.NET1.1)をベースに記述されています。それ以降のバージョンや、あなたが読んでいる時点では変更されている可能性があります。
またバージョンアップされている場合にはなんらかかの不具合を含んでいる可能性があります。

ドキュメントへ
HexToUnicode1d.htm

ソースファイル直接ダウンロードへ
HexToUnicode1c.txt

利用規約へ
../kiyaku.htm

Imports EnvDTE
Imports System.Diagnostics
Imports System.Runtime.InteropServices
Imports System.Text.RegularExpressions
Imports System.Text.Encoding
Imports System.ComponentModel

Public Module HexToUnicode
    Sub HexToUnicode()
        'DTEドキュメントを取得する
        Dim DteDocument As EnvDTE.Document = Nothing
        Try
            DteDocument = DTE.ActiveDocument()
            'Selectionオブジェクトを取得する
            Dim sel As TextSelection = Nothing
            Try
                sel = DteDocument.Selection()
                '正規表現エンジンを準備します
                Dim reg As Regex = New Regex("\\[u][0-9a-f]{4}")
                'HexからUnicode文字列変換を行うEvaluatorを作成します
                Dim Evaluator As MatchEvaluator = New MatchEvaluator(AddressOf HexToBinaryEvaluator)
                '変換結果を書き戻します。
                sel.Text = reg.Replace(sel.Text, Evaluator)
            Finally
                'Selectionオブジェクトを開放する
                If (Not sel Is Nothing) Then
                    Marshal.ReleaseComObject(sel)
                End If
            End Try
        Finally
            'DTEドキュメントを開放する
            If (Not DteDocument Is Nothing) Then
                Marshal.ReleaseComObject(DteDocument)
            End If

        End Try

    End Sub
    Private Function HexToBinaryEvaluator(ByVal match As Match) As String
        '\x0000から\uffffの文字列を処理します。
        'バイト文字列から上下のバイト文字列に分割します。
        Dim LowerByteString As String = match.Value.Substring(4, 2)
        Dim UpperByteString As String = match.Value.Substring(2, 2)
        'バイトに変換します
        Dim LowerByte As Byte = System.Convert.ToByte(LowerByteString, 16)
        Dim UpperByte As Byte = System.Convert.ToByte(UpperByteString, 16)
        'バイトコンバータを準備します
        Dim bc As ByteConverter = New ByteConverter
        'Unicodeエンコードを使いバイトから文字列を作り出す
        Return System.Text.UnicodeEncoding.Unicode.GetString(New Byte() {LowerByte, UpperByte})
    End Function



End Module

勉強会: 05/18 大阪 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告