• ベストアンサー

ファイル名をcellに入れる方法

日ごとにつくったcsvファイルを一か月分フォルダに保存していています。日ごとのcsvファイルには一行ずつのデータが詰まっています。 それをすべて1行ずつ読み込んでdatagridviewに表示したいと思います。どうすればいいでしょうか? System.IO.Directory.GetFiles("フォルダ名", "200812??.csv") これより先に進めなくて困っています。 また、その際にファイル名の??の部分をdatagridviewの列に表示したいのですがこれはどうすればできますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.3

こんな感じになると思います、いろいろ調べて、工夫してみてください。 '実行ファイルパス名取得 Dim DirPath As String = System.IO.Path.GetDirectoryName( _ System.Reflection.Assembly.GetExecutingAssembly().Location) & "\" Dim enc As System.Text.Encoding = _ System.Text.Encoding.GetEncoding("Shift_JIS") '取得したい年月サンプルのため固定値 Dim GetYear As Integer = 2008 Dim GetMonth As Integer = 12 Dim FileName As String = Nothing FileName = Dir(DirPath) Do While FileName <> vbNullString Using reader As System.IO.StreamReader = New System.IO.StreamReader(DirPath & FileName) If DataGridView1.ColumnCount = 0 Then Dim textColumn As New DataGridViewTextBoxColumn() textColumn.Name = "データー" DataGridView1.Columns.Add(textColumn) End If DataGridView1.Rows.Add(reader.ReadLine) End Using FileName = Dir() Loop

その他の回答 (2)

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

このサイト、基本的には丸投げ禁止ですので ここでお勉強を http://homepage1.nifty.com/rucio/main/dotnet/Samples/SmpleCnt.htm +ヒント どちらが楽か?と考えるとデザインでカラムを作っておいて その月の日数分をレコード数にして 先頭にファイル名をセットして読み込んだ行をSplitして貼り付けて行く方が楽かな? あや、似たような回答が既に入力されていた

参考URL:
http://homepage1.nifty.com/rucio/main/dotnet/Samples/SmpleCnt.htm
  • ainax
  • ベストアンサー率45% (5/11)
回答No.1

自分の場合だったとしたらですが、 1.GetFilesで取得したファイル名をFor Each文で回す。 2.ファイル名から??の部分を取得しておく 3.ファイルを開き1行ずつ最終行まで読む 4.読み込んだ行の文字列に??の部分をCSVの区切り文字付きで合成 5.合成した文字列を区切り文字単位で文字列配列に分割 6.予め作っておいたDataTableの新しい行に、5.の文字列配列を追加する。 という感じでDataTableを作成してから最後にDataGridViewに突っ込みます。 問題点は、全てのCSVファイルが同じ列分あることですね。 詳しくは参考URLを見てみて下さい。

参考URL:
http://dobon.net/vb/bbs/log3-8/4876.html

関連するQ&A