タイトル | : 構造体をCSVへ出力の件 |
記事No | : 11617 |
投稿日 | : 2016/01/30(Sat) 22:57 |
投稿者 | : トミー |
こんばんは。 VB2005〜2013以降様々な環境を使っています。 OSはVista〜Win8.1などです。
構造体に格納されているすべての値をCSVに出力する際、 構造体の項目数が仕様変更で変わってもいいように ソースを直したいのですが・・・
例えば、For Each でできそうな気がしましたが 探しても見つかりませんでした。
CSV出力のところをどのように変えたらいいでしょうか・・・
構造体の項目数が変わっても
Private St() As StXyz Private Structure StXyz '↓項目数が変更しても Dim colkey As String Dim colName As String Dim colAddress As String Dim colNickname As String Dim colMemo As String '↑項目数が変更しても End Structure '(中略) Private sub CSVOutput() Dim fileName As String = "csvTest.csv" '読み出しファイルのパス Dim fileName2 As String = "csvTest2.csv" '書込みファイルのパス Dim fileNo As Integer = FreeFile() 'ファイル番号を取得 Dim fileNo2 As Integer = FreeFile() 'ファイル番号を取得 Dim n As Integer = 0 Dim m As Integer = 0
FileOpen(fileNo, fileName, OpenMode.Input) Do Until EOF(fileNo) 'ファイルの最後までループ ReDim Preserve St(n) ' CSV各項目をセット Input(fileNo, St(n).colkey) Input(fileNo, St(n).colName) Input(fileNo, St(n).colAddress) Input(fileNo, St(n).colNickname) Input(fileNo, St(n).colMemo) 'カウンタ追加 n += 1 Loop FileClose(fileNo) '(中略)St(n).colkey などを変換処理して違う値が代入されたとする 'ファイルを出力モードで開く FileOpen(fileNo2, fileName2, OpenMode.Output) Do while m < n ' CSV各項目をセット '↓ここをどう変えれば良いか判らないです Write(fileNo2, St(m).colkey) 'ファイルへ書き込む Write(fileNo2, St(m).colName) Write(fileNo2, St(m).colAddress) Write(fileNo2, St(m).colNickname) WriteLine(fileNo2, St(m).colMemo) '最後の列はWriteLineで書き込む '↑ここをどう変えれば良いか判らないです 'カウンタ追加 m += 1 Loop FileClose(fileNo2) 'ファイルを閉じる End Sub
よろしくご教示お願いいたします。
|