FileOpen 関数を使ってのCSVファイルの読み書き (2個) (SNo.029) 1.CSVファイルを読み込み構造体の配列に保存する 2.CSV データを読み込みファイルに保存する |
|
使用コントロール | Button1 Button2 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) 名前空間 : Microsoft.VisualBasic モジュール : FileSystem 使用ファイルは準備しておくか 2.のファイルの保存で作成してから 1.を実行してください。 |
1.CSVファイルを読み込み構造体の配列に保存する
ファイルに保存との共通部分 '成績のデータ保存用構造体 Private Structure SeisekiDat Dim name As String '生徒名 Dim kokugo As Single '国語の点数 Dim suugaku As Single '数学の点数 Dim eigo As Single '英語の点数 End Structure Private sd() As SeisekiDat '----------------------------------------------------------- Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click 'CSVファイルを読み込み構造体の配列に保存する '名前空間: Microsoft.VisualBasic モジュール: FileSystem Dim fileName As String = "../../seiseki.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).name) 'ファイルから読み込み Input(fileNo, sd(n).kokugo) Input(fileNo, sd(n).suugaku) Input(fileNo, sd(n).eigo) Debug.WriteLine(sd(n).name & vbTab & sd(n).kokugo & vbTab & _ sd(n).suugaku & vbTab & sd(n).eigo) n += 1 Loop FileClose(fileNo) 'ファイルを閉じる '出力結果 '浅野 純子 63 69 87 '足立 由美 77 69 85 '加藤 愛子 80 91 92 '斉藤 正樹 79 84 70 End Sub |
|
2.CSV データを読み込みファイルに保存する Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click 'CSV データを読み込みファイルに保存する Dim fileName As String = "../../seiseki.csv" 'ファイルのパス Dim fileNo As Integer = FreeFile() 'ファイル番号を取得 ReDim sd(3) Dim i As Integer 'データの作成 sd(0).name = "浅野 純子" : sd(0).kokugo = 63 : sd(0).suugaku = 69 : sd(0).eigo = 87 sd(1).name = "足立 由美" : sd(1).kokugo = 77 : sd(1).suugaku = 69 : sd(1).eigo = 85 sd(2).name = "加藤 愛子" : sd(2).kokugo = 80 : sd(2).suugaku = 91 : sd(2).eigo = 92 sd(3).name = "斉藤 正樹" : sd(3).kokugo = 79 : sd(3).suugaku = 84 : sd(3).eigo = 70 'ファイルを出力モードで開く FileOpen(fileNo, fileName, OpenMode.Output) For i = 0 To 3 Write(fileNo, sd(i).name) 'ファイルへ書き込む Write(fileNo, sd(i).kokugo) Write(fileNo, sd(i).suugaku) WriteLine(fileNo, sd(i).eigo) '最後の列はWriteLineで書き込む Next i FileClose(fileNo) 'ファイルを閉じる '結果 メモ帳でファイルを開いた状態です。 ' "浅野 純子",63,69,87 ' "足立 由美",77,69,85 ' "加藤 愛子",80,91,92 ' "斉藤 正樹",79,84,70 End Sub |