コメント |
@DIV
vbc /t:winexe /main:Form1 /out:myProg Form1.vb Form1.Designer.vb [[Common.vb]]
@END
↓Common.vb
@DIV
Imports System.IO
Imports System.Text
Imports System.Windows
Public Class Lightbox
@C:red(Public Shared) Function GetProgDir() As String
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)
' **************************************************************
' 関数から値を返すには、関数名に値を割り当てるか、
' または Return ステートメントに値を設定します
' **************************************************************
Return pgDir
End Function
End Class
@END
↓Form1.vb
@DIV
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
' **************************************************************
' 変換したパスを初期ディレクトリとして設定
' **************************************************************
dlg.InitialDirectory = @C:red(Lightbox).GetProgDir()
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
@END
|