OpenFileDialogを利用したファイルの読み取りが出来ません。
投稿者 shu  (社会人)
投稿日時
2011/11/14 14:18:49
書かれたコードを載せた方が分かりやすいですよ。
投稿者 ヴァン  (社会人)
投稿日時
2011/11/14 15:07:36
「反応」とは何を期待しているのでしょうか?
OpenFileDialog はファイルを選択するだけです。
読み込むコードは自分で書く必要があります。
OpenFileDialog はファイルを選択するだけです。
読み込むコードは自分で書く必要があります。
投稿者 カシミヤ  (高校生)
投稿日時
2011/11/14 15:38:55
コードを乗せようかと思いましたが、出力・読み込みのしかたを全くといっていいほど理解できていないため、かなり適当なものであるかつ、ほぼ先ほどのサイトのコード・ここの「ファイル処理」にあるコードを試験的にほぼコピペしたもの、かつ、「動くわけがない。」といえるほどになってると思い敢えてのせませんでした。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim WriteStream As New StreamWriter("C:\Users\UserName\Desktop\test.txt")
WriteStream.WriteLine(TextBox1.Text)
WriteStream.WriteLine(TextBox2.Text)
WriteStream.Write(TextBox3.Text)
WriteStream.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'OpenFileDialogクラスのインスタンスを作成
Dim ofd As New OpenFileDialog()
'タイトルを設定する
ofd.Title = "開くファイルを選択してください"
'ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする
ofd.RestoreDirectory = True
'ダイアログを表示する
If ofd.ShowDialog() = DialogResult.OK Then
'OKボタンがクリックされたとき
'選択されたファイル名を表示する
Console.WriteLine(ofd.FileName)
End If
Dim stream As System.IO.Stream
stream = ofd.OpenFile()
If Not (stream Is Nothing) Then
'内容を読み込み、表示する
Dim sr As New System.IO.StreamReader(stream)
Console.WriteLine(sr.ReadToEnd())
'閉じる
sr.Close()
stream.Close()
End If
'読み込んだファイルを表示させたい
Dim Reader As IO.StreamReader ←エラー・または警告が出る
TextBox1.Text = Reader.ReadLine
TextBox2.Text = Reader.ReadLine
TextBox3.Text = Reader.ReadLine
Reader.Close()
End Sub
End Class
「ダイアログを開く」以降どうすればいいのか全く分からないため、試行錯誤の嵐で混乱しています。
ヘルプを見ても案の定理解できません。。。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim WriteStream As New StreamWriter("C:\Users\UserName\Desktop\test.txt")
WriteStream.WriteLine(TextBox1.Text)
WriteStream.WriteLine(TextBox2.Text)
WriteStream.Write(TextBox3.Text)
WriteStream.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'OpenFileDialogクラスのインスタンスを作成
Dim ofd As New OpenFileDialog()
'タイトルを設定する
ofd.Title = "開くファイルを選択してください"
'ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする
ofd.RestoreDirectory = True
'ダイアログを表示する
If ofd.ShowDialog() = DialogResult.OK Then
'OKボタンがクリックされたとき
'選択されたファイル名を表示する
Console.WriteLine(ofd.FileName)
End If
Dim stream As System.IO.Stream
stream = ofd.OpenFile()
If Not (stream Is Nothing) Then
'内容を読み込み、表示する
Dim sr As New System.IO.StreamReader(stream)
Console.WriteLine(sr.ReadToEnd())
'閉じる
sr.Close()
stream.Close()
End If
'読み込んだファイルを表示させたい
Dim Reader As IO.StreamReader ←エラー・または警告が出る
TextBox1.Text = Reader.ReadLine
TextBox2.Text = Reader.ReadLine
TextBox3.Text = Reader.ReadLine
Reader.Close()
End Sub
End Class
「ダイアログを開く」以降どうすればいいのか全く分からないため、試行錯誤の嵐で混乱しています。
ヘルプを見ても案の定理解できません。。。
投稿者 shu  (社会人)
投稿日時
2011/11/14 16:11:53
> Dim sr As New System.IO.StreamReader(stream)
> Console.WriteLine(sr.ReadToEnd())
> '閉じる
> sr.Close()
> stream.Close()
ここでファイルを閉じてしまっています。
> Dim Reader As IO.StreamReader ←エラー・または警告が出る
Dim Reader As new IO.StreamReader(ofd.OpenFile())
または
Dim Reader As new IO.StreamReader(ofd.FileName)
> Console.WriteLine(sr.ReadToEnd())
> '閉じる
> sr.Close()
> stream.Close()
ここでファイルを閉じてしまっています。
> Dim Reader As IO.StreamReader ←エラー・または警告が出る
Dim Reader As new IO.StreamReader(ofd.OpenFile())
または
Dim Reader As new IO.StreamReader(ofd.FileName)
投稿者 xvmmtnk  (中学生)
投稿日時
2011/11/14 23:37:58
RichTextBox なら、もっと読み込み、書き込みが簡単にできます。
投稿者 カシミヤ  (高校生)
投稿日時
2011/11/15 16:56:14
遅くなりました。ファイルの読み取りは一応出来るようになったのですが、ダイアログを開いてファイルを選択せずキャンセルすると
stream = ofd.OpenFile()
のところで例外エラーで起きてしまいます。これはどういうことなのでしょうか?重ね重ねすみません。
stream = ofd.OpenFile()
のところで例外エラーで起きてしまいます。これはどういうことなのでしょうか?重ね重ねすみません。
投稿者 shu  (社会人)
投稿日時
2011/11/15 17:25:46
> If ofd.ShowDialog() = DialogResult.OK Then
このifブロック内で処理していないので
ファイル名指定がない状態で開こうとしているためです。
このifブロック内で処理していないので
ファイル名指定がない状態で開こうとしているためです。
投稿者 カシミヤ  (高校生)
投稿日時
2011/11/16 15:41:10
If ofd.ShowDialog() = DialogResult.OK Then
stream = ofd.OpenFile()
Else
Exit Sub
End If
でエラーは起きなくなりました。有難うございました。
stream = ofd.OpenFile()
Else
Exit Sub
End If
でエラーは起きなくなりました。有難うございました。
ファイルパスをあらかじめ指定したRead系メソッドならこの中学校にもサンプルコードはありますし、反応もありますが、OpenFileDialogを使ったファイルの表示するためのコードは普通に検索しても出てこず、あっても先ほど書いたようになんの反応もないのです。もしくはエラーがでる。
参考にしたコードはここから
http://dobon.net/vb/dotnet/form/openfiledialog.html
練習がはかどらず困ってます。よろしくお願いします。