tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルデータの保存、読込み
記事No2639
投稿日: 2005/11/25(Fri) 16:01
投稿者
[OSのVer]:Windows2000    [VBのVer]:VB.NET  
変数(配列含む)に入っているデータを名前を付けて、
txtファイル(txtじゃなくてもいいですが)に保存、
そしてそれを読み込みたいのですが、どうもよくわかりません。
openfiledialog,savefiledialog,write,imputなんかを使うのだと思うのですが…。
ご教授願います。

[ツリー表示へ]
タイトルRe: データの保存、読込み
記事No2641
投稿日: 2005/11/25(Fri) 16:55
投稿者なおこ(・∀・)
お世話になります。

現状、どこまで出来ていらっしゃって
どこで躓いていらっしゃいますか?

> [OSのVer]:Windows2000    [VBのVer]:VB.NET  
> 変数(配列含む)に入っているデータを名前を付けて、
> txtファイル(txtじゃなくてもいいですが)に保存、
> そしてそれを読み込みたいのですが、どうもよくわかりません。
> openfiledialog,savefiledialog,write,imputなんかを使うのだと思うのですが…。
> ご教授願います。

[ツリー表示へ]
タイトルRe^2: データの保存、読込み
記事No2644
投稿日: 2005/11/25(Fri) 19:16
投稿者
[OSのVer]:Windows    [VBのVer]:VB.NET 
保存側
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button9.Click
        SaveFileDialog1.InitialDirectory = "C:\"
        ' ファイルのフィルタ
        SaveFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*&quo
t;
        SaveFileDialog1.FilterIndex = 2
        SaveFileDialog1.RestoreDirectory = True

        If SaveFileDialog1.ShowDialog() = DialogResult.OK Then

      @A

            MessageBox.Show(SaveFileDialog1.FileName)
        End If

        SaveFileDialog1.Dispose()
   End Sub

読込み側
    OpenFileDialog1.InitialDirectory = "C:\"
    ' フィルタの設定
        OpenFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*&quo
t;
        OpenFileDialog1.FilterIndex = 2
        OpenFileDialog1.RestoreDirectory = True
        OpenFileDialog1.ShowReadOnly = True
        OpenFileDialog1.ReadOnlyChecked = True

        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
      @B

            MessageBox.Show(OpenFileDialog1.FileName)
        End If

        OpenFileDialog1.Dispose()

一応、上記、@Aの部分に
 fname = SaveFileDialog1.FileName
  If fname = "" Then Exit Sub
  Open fname For Output As #1
  Write #1,a(0)〜a(10)
  Close #1

@Bの部分に
 fname = OpenFileDialog1.FileName
  If fname = "" Then Exit Sub
  Open fname For Output As #1
  Input a(0)〜a(10)
  Close #1
(実は、VB6.0でデータの保存、読込みのコードを持っているので)
それを少しいじればいいかな、と思ったら
波線がたくさん出てどうしょうもなくなってます。
現状、ほぼスタートした瞬間、こけてます。
 
> お世話になります。
>
> 現状、どこまで出来ていらっしゃって
> どこで躓いていらっしゃいますか?

[ツリー表示へ]
タイトルRe^3: データの保存、読込み
記事No2645
投稿日: 2005/11/25(Fri) 20:06
投稿者花ちゃん
> (実は、VB6.0でデータの保存、読込みのコードを持っているので)
> それを少しいじればいいかな、と思ったら
> 波線がたくさん出てどうしょうもなくなってます。
> 現状、ほぼスタートした瞬間、こけてます。

ここの[ファイル入出]はご覧になられましたか? まだでしたら一度見て下さい。

[ツリー表示へ]
タイトルRe^4: データの保存、読込み
記事No2763
投稿日: 2005/12/15(Thu) 18:03
投稿者
[OSのVer]:Windows    [VBのVer]:VB.NET  
少し時間がたってしまいましたが、
現在、
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button9.Click
        '保存
        Dim FileSaveName As String
        Dim sw As IO.StreamWriter
        Dim dlg_FileSave As DialogResult
        Dim i As Integer

        dlg_FileSave = SaveFileDialog1.ShowDialog

        SaveFileDialog1.RestoreDirectory = False

        If dlg_FileSave = DialogResult.Cancel Then

            Exit Sub

        End If

        FileSaveName = SaveFileDialog1.FileName
        sw = New IO.StreamWriter(FileSaveName, False, System.Text.Encoding.Default)


        '書込み
        sw.Write(a)    (a,b(i)はIntegerです。)

        For i = 0 To 2
            sw.Write(b(i))
        Next
      ・(sw.Writeがたくさん続いてます)
      ・
    sw.Close()
    SaveFileDialog1.Dispose()
    End Sub

という感じになってまして、とりあえず、変数に入っているデータを書き込むことはできました。
ただ、これを読み込む場合、整合性は取れているのでしょうか?
vb6では取れていたので、大丈夫だとは思うのですが。

そして、読込みのほうですが
    '読込み
        'Dim FileOpenName As String
        'Dim sr As IO.StreamReader
        'Dim dlg_FileSave As DialogResult
        'Dim i As Integer

        ' ファイルのフィルタを設定する
        'OpenFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*&qu
ot;

        ' ファイルの種類 の初期設定を 2 番目に設定する
        'OpenFileDialog1.FilterIndex = 2

        'dlg_FileSave = OpenFileDialog1.ShowDialog

        'OpenFileDialog1.RestoreDirectory = False

        'If dlg_FileSave = DialogResult.Cancel Then

        'Exit Sub

        'End If

        'FileOpenName = OpenFileDialog1.FileName
        'sr = New IO.StreamReader(FileOpenName, False, System.Text.Encoding.Default)
と、同じような感じでやっていたところ、一番最後の
'sr = New IO.StreamReader(FileOpenName, False, System.Text.Encoding.Default)
の()内のFileOpenNameところで問題がしました。
コモンダイアログから指定したファイルを読み込みたいのですが、どう直せばよいのでしょうか?
それともこのやり方では無理のなのでしょうか?ご教授願います。

[ツリー表示へ]
タイトルRe^5: データの保存、読込み
記事No2770
投稿日: 2005/12/16(Fri) 09:06
投稿者なおこ(・∀・)
お世話になります。
> ただ、これを読み込む場合、整合性は取れているのでしょうか?
> vb6では取れていたので、大丈夫だとは思うのですが。
整合性?
どういった意味合いで整合性とおっしゃってるか解りませんが、
コードを見る限り特に問題はないと思います。
※強いて言えば、オブジェクトの破棄が保障されていないところでしょうか。
 それについては、こちらをご参考にされるとよいと思います。
hhttp://jeanne.wankuma.com/tips/programing/01-dispose.html

> 一番最後の
> 'sr = New IO.StreamReader(FileOpenName, False, System.Text.Encoding.Default)

こうではないですか?
sr = New IO.StreamReader(FileOpenName, System.Text.Encoding.Default)

[ツリー表示へ]
タイトルRe^6: データの保存、読込み
記事No2782
投稿日: 2005/12/16(Fri) 18:46
投稿者
[OSのVer]:Windows    [VBのVer]:VB.NET  
返信ありがとうございます。
> 整合性?
> どういった意味合いで整合性とおっしゃってるか解りませんが、
> コードを見る限り特に問題はないと思います。
> ※強いて言えば、オブジェクトの破棄が保障されていないところでしょうか。
>  それについては、こちらをご参考にされるとよいと思います。
> hhttp://jeanne.wankuma.com/tips/programing/01-dispose.html

言葉足らずですいません。
vb6で
Open fname For Output As #1
  Write #1, a1, a2, b1, b2, c1, c2, d1, d2
  Close #1
という感じでtxtファイルに保存すると、
Open fname For Output As #1
  Input #1, a1, a2, b1, b2, c1, c2, d1, d2
  Close #1
で読み出すと、txtファイルには数字しか書かれてなくても、ちゃんと同じ変数のところに
数字が入っていたで、同じ感じでやってみたのは良かったのですが、
vb.netではinputというのはないのですね。
Readというのが代わりのようですが…
sr.Read(a)とやってもエラーがでてしまったので、txtに書き出した地点で
ただの数字になってしまったようだったので
vb.netでも同じようになっているのか、不安だったので聞いてみました。

[ツリー表示へ]