ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: 外部クラスに、共有プロシージャとして定義する
名前: lightbox
処理選択
パスワード

件名 外部クラスに、共有プロシージャとして定義する
名前 lightbox
コメント
@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