ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
Form1.vb ( No.2 )
日時: 2009/02/21 18:41
名前: lightbox



Imports System.IO
Imports System.Text
Imports System.Windows


Public Class Form1

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

' **************************************************************
' テキストファイルを読み込む為の Stream クラス と 
' ファイルを開くダイアログを使用する為の OpenFileDialog クラス
' **************************************************************
        Dim myStream As Stream
        Dim dlg As New Forms.OpenFileDialog

        Dim arg As String() = Environment.GetCommandLineArgs()

' **************************************************************
' ファイルパスを分解して、ディレクトリのパスに変換する
' **************************************************************
        Dim delimStr As String = "\"
        Dim delimiter As Char() = delimStr.ToCharArray()
        Dim aData As String() = arg(0).Split(delimiter)
        Dim pgDir As String = String.Join("\", aData, 0, aData.Length - 1)

' **************************************************************
' 変換したパスを初期ディレクトリとして設定
' **************************************************************
        dlg.InitialDirectory = pgDir
        dlg.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
        dlg.FilterIndex = 2
        dlg.RestoreDirectory = True

        Dim str As String = ""

' **************************************************************
' ファイルを開くダイアログを表示
' **************************************************************
        If dlg.ShowDialog() = Forms.DialogResult.OK Then
            myStream = dlg.OpenFile()
            If Not (myStream Is Nothing) Then

' **************************************************************
' ファイルを読む為の StreamReader クラス
' ファイルは Shift_JIS なので明示する必要がある
' **************************************************************
                Dim sr As StreamReader = _
                    New StreamReader( _
                        myStream, _
                        Encoding.GetEncoding("Shift_JIS") _
                    )

' **************************************************************
' ループ処理で行を結合して、ファイル全体としてのテキストを作成
' **************************************************************
                Do While sr.Peek() >= 0
                    str += sr.ReadLine() + vbCrLf
                Loop

' **************************************************************
' 複数行のテキストボックスにセットして表示
' **************************************************************
                Me.TextBox1.Text = str

' **************************************************************
' リーダとストリームを閉じる
' **************************************************************
                sr.Close()
                myStream.Close()

            End If
        End If

    End Sub

End Class