- PR -

String配列からIListに変換

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2006-01-26 18:30
Windows Form のC#で開発しています。
カンマ形式のCSVファイルを読み込んで、DataGridに表示させるプログラムを
作成したいのでしすが、どうやったらよいでしょうか?
下記のようなソースコードなのですが、CSVの内容が表示されません。

DirectoryInfo di = new DirectoryInfo(@"c:\log\V3-2-1-02-002-0001");
FileInfo[] fis = di.GetFiles("*.csv");
StreamReader sr = new StreamReader(fis[0].FullName, Encoding.GetEncoding("Shift_JIS"));
string text = sr.ReadToEnd();
sr.Close();
this.dataGrid1.DataSource = text.Split(',');
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-26 18:50
StringCollection で良いんじゃないですか?

  IList を実装するクラス

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2006-01-30 10:11
早速、下記のようにStringCollectionを使ってみましたが
DataGridの1列目に文字列の長さ(変数strのlength)が表示されてしまいます。
文字列自体を表示させるにはどうしたらよいのでしょうか?
よろしくお願いします。

string[] str = text.Split(',');
StringCollection a = new StringCollection();
a.AddRange(str);
this.dataGrid1.DataSource = a;
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2006-01-30 12:18
splitした後、DataSetに格納するようにしたら表示できました。
ありがとうございました。
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2006-01-30 15:37
お世話になります。

もう解決されたようですが...
引用:

damepgさんの書き込み (2006-01-30 12:18) より:
splitした後、DataSetに格納するようにしたら表示できました。


ひょっとして、DataTable ですか?
↓こんな感じでしょうか。
コード:
private void button1_Click(object sender, System.EventArgs e){
  System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"D:\test");
  System.IO.FileInfo[] fis = di.GetFiles("*.csv");

  DataTable dt = new DataTable("test");
  dt.Columns.Add("a", typeof(string));
  dt.Columns.Add("b", typeof(string));
  dt.Columns.Add("c", typeof(string));

  using(System.IO.StreamReader sr = new System.IO.StreamReader(fis[0].FullName, System.Text.Encoding.Default)){
    try{
      while(sr.Peek() > -1){
        dt.Rows.Add(sr.ReadLine().Split(','));
      }
    }finally{
      if (sr != null) sr.Close();
    }
  }
  this.dataGrid1.DataSource = dt;
}

1

スキルアップ/キャリアアップ(JOB@IT)