プログラミング: 2010年10月アーカイブ

現在作成中の VB.NET プログラムで扱うファイルが UTF-16 の、しかも Big-Endian で書かれているのを今日知った。(^^;

そのデータをインターネット上から取得して、他のプログラムで使用するためにディスク上に保管するのだが、その、「他のプログラム」が「Shift_JIS で書かれているファイル」を期待しているようである。

つーことで、UTF-16(Big-Endian) のファイルを Shift_JIS に変換して出力する処理を試しに書いてみた。

Imports System
Imports System.IO
Imports System.Text
Imports System.Collections

Module Module1

    Sub Main()

        Dim value As String
        value = FileRead("U16BE.txt")
        FileWrite("SJIS.txt", value)

    End Sub

    Function FileRead(ByVal Fn As String) As String
        '---------------------------------------------------------
        ' UTF-16(Big-Endian) 形式で書かれたテキストを読み込む
        '---------------------------------------------------------

        Dim sr As New StreamReader(Fn, Encoding.BigEndianUnicode)
        Dim val As String = sr.ReadToEnd()
        sr.Close()

        Return val

    End Function

    Sub FileWrite(ByVal Fn As String, ByVal Value As String)
        '---------------------------------------------------------
        ' テキストを Shift_JIS 形式で出力する
        '---------------------------------------------------------

        Dim val As StreamWriter = New StreamWriter(New FileStream(Fn, FileMode.Create), Encoding.GetEncoding("shift_jis"))
        val.Write(Value)
        val.Close()

    End Sub

End Module

これで、問題無し。

まあ、よく考えたら、確か VB.NET の内部処理は UTF-16 で行われているので、うまくいって当たり前だわな。

VisualBasic もずっと使ってるわけではないので、たまにデバッグすると忘れちゃってるなあ(^^;

つーことで、メモ、メモ。

■VB.NET の ConsoleApplication で、デバッグ実行後に自動的にコンソール画面を閉じないようにする方法

A. Ctrl + F5 押下でデバッグを実行する。

F5 押下でデバッグを実行するが、この時に Control キーも一緒に押すと、デバッグ実行後もコンソール画面は開いたままになる。

B.デバッグ時にのみ実行されるキー入力待ちの処理を追加する。

以下のソースを、処理の最後に入れておく。

#If DEBUG Then
 Console.WriteLine("続行するには何かキーを押してください...")
 Console.ReadKey()
#End If

このどちらかでOK。
通常は A の方法で良いと思うけどねぇ。

このアーカイブについて

このページには、2010年10月以降に書かれたブログ記事のうちプログラミングカテゴリに属しているものが含まれています。

前のアーカイブはプログラミング: 2010年9月です。

次のアーカイブはプログラミング: 2010年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら