VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 ファイル入出力関係のメニュー
1.テキストファイルを読込テキストボックスに表示及び保存
2.FileOpen 関数を使ってのCSVファイルの読み書き
3.StreamReaderを使ってのCSVファイルの読み込み
4.ComboBox でテキストファイルを使っての読み込み書き込み
5.DataGridView でのデータの読込・保存・表示関係
6.テキストファイルを読み込んでリストボックスに表示及びファイルに保存
7.
8.
9.
10.
11.
12.
 .
20.その他、当サイト内に掲載のファイル入出力に関するサンプル 


2.FileOpen 関数を使ってのCSVファイルの読み書き(33_FIO_02) (旧、SampleNo.029)
1.CSV データを読み込みファイルに保存(作成・書き込み)する
2.CSVファイルを読み込み構造体の配列に確保する
3.配列からデータを取り出す
4.
5.
6.

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.CSV データを読み込みファイルに保存(作成・書き込み)する

'先頭行の項目に文字列を使っているので、データも文字列型として扱う
Private Structure SeisekiDat    '成績のデータ保存用構造体
    Dim idno As String          'No
    Dim name As String          '氏名
    Dim kokugo As String        '国語の点数
    Dim suugaku As String       '数学の点数
    Dim eigo As String          '英語の点数
    Dim gokei As String         '合計の点数
End Structure

Private sd() As SeisekiDat

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'CSV データを読み込みファイルに保存(作成・書き込み)する
    Dim fileName As String = "test009.csv"    'ファイルのパス
    Dim fileNo As Integer = FreeFile()                    'ファイル番号を取得
    ReDim sd(5)
    Dim i As Integer
    'データの作成
    sd(0).idno = "1" : sd(0).name = "浅野 純子" : sd(0).kokugo = "63" : sd(0).suugaku = "69" : sd(0).eigo = "87" : sd(0).gokei = "219"
    sd(1).idno = "2" : sd(1).name = "深田 京子" : sd(1).kokugo = "77" : sd(1).suugaku = "69" : sd(1).eigo = "85" : sd(1).gokei = "231"
    sd(2).idno = "3" : sd(2).name = "加藤 愛子" : sd(2).kokugo = "80" : sd(2).suugaku = "91" : sd(2).eigo = "92" : sd(2).gokei = "263"
    sd(3).idno = "4" : sd(3).name = "斉藤 正樹" : sd(3).kokugo = "79" : sd(3).suugaku = "84" : sd(3).eigo = "70" : sd(3).gokei = "233"
    sd(4).idno = "5" : sd(4).name = "鈴木 一郎" : sd(4).kokugo = "69" : sd(4).suugaku = "72" : sd(4).eigo = "87" : sd(4).gokei = "228"
    sd(5).idno = "6" : sd(5).name = "浅野 純子" : sd(5).kokugo = "63" : sd(5).suugaku = "69" : sd(5).eigo = "87" : sd(5).gokei = "219"

    'ファイルを出力モードで開く
    FileOpen(fileNo, fileName, OpenMode.Output)
    For i = 0 To 5
        Write(fileNo, sd(i).idno)           'ファイルへ書き込み
        Write(fileNo, sd(i).name)
        Write(fileNo, sd(i).kokugo)
        Write(fileNo, sd(i).suugaku)
        Write(fileNo, sd(i).eigo)
        WriteLine(fileNo, sd(i).gokei)      '最後の列はWriteLineで書き込み
    Next i
    FileClose(fileNo)   'ファイルを閉じる

'結果 メモ帳でファイルを開いた状態です。

    '   "1","浅野 純子","63","69","87","219"
    '   "2","深田 京子","77","69","85","231"
    '   "3","加藤 愛子","80","91","92","263"
    '   "4","斉藤 正樹","79","84","70","233"
    '   "5","鈴木 一郎","69","72","87","219"
    '   "6","浅野 純子","63","69","87","219"

End Sub

このページのトップへ移動します。 2.CSVファイルを読み込み構造体の配列に確保する

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'CSVファイルを読み込み構造体の配列に確保する
    '名前空間:  Microsoft.VisualBasic   モジュール:  FileSystem
    Dim fileName As String = "test009.csv"  'ファイルのパス
    Dim fileNo As Integer = FreeFile()      'ファイル番号を取得
    Dim n As Integer
    'ファイルを入力モードで開く
    FileOpen(fileNo, fileName, OpenMode.Input)
    Do Until EOF(fileNo)                    'ファイルの最後までループ
        ReDim Preserve sd(n)
        Input(fileNo, sd(n).idno)
        Input(fileNo, sd(n).name)           'ファイルから読み込み
        Input(fileNo, sd(n).kokugo)
        Input(fileNo, sd(n).suugaku)
        Input(fileNo, sd(n).eigo)
        Input(fileNo, sd(n).gokei)

        Debug.WriteLine(sd(n).idno & vbTab & sd(n).name & vbTab & sd(n).kokugo & vbTab & _
                            sd(n).suugaku & vbTab & sd(n).eigo & vbTab & sd(n).gokei)
        n += 1
    Loop
    FileClose(fileNo)   'ファイルを閉じる
   '出力結果
    '   1 浅野 純子 63 69 87 219
    '   2 深田 京子 77 69 85 231
    '   3 加藤 愛子 80 91 92 263
    '   4 斉藤 正樹 79 84 70 233
    '   5 鈴木 一郎 69 72 87 219
    '   6 浅野 純子 63 69 87 219

End Sub

このページのトップへ移動します。 3.配列からデータを取り出す
深田さんの英語の点数を取得

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    MessageBox.Show(sd(1).name & "さんの英語の点数は、" & sd(1).eigo & " 点です。")
End Sub

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。