中の技術日誌
 ホーム / 上へ

わんくまライブラリ Wankuma.IO.CSVReaderクラス Version1

2006/03/16

この文書はVisual Studio 2005(.NET2.0)をベースに記述されています。それ以降のバージョンや、あなたが読んでいる時点では変更されている可能性があります。
またバージョンアップされている場合にはなんらかかの不具合を含んでいる可能性があります。

ソースファイルへ
CSVReader1s.htm

ソースファイル直接ダウンロードへ
CSVReader1c.txt

利用規約へ
../kiyaku.htm

クラスの説明

CSVの読み取りを行いたいという要求は非常に根強いものがあります。
にもかかわらず.NETのBCLにはそれを積極的にサポートする機能はありません。

.NET 1.1時代にもCSVクラスを提供してきました(わんくまライブラリ Wankuma.IO.CSVクラス Version1)が、VB6時代のものを移植しただけ、ですべてをオンメモリにためてから出ないと利用できないなど制限の多いものでした。

.NET 2.0にあわせて全面的にリーダ型で書き直しを図ったのがこのクラスです。

プロパティ

public char 区切り文字
CSVの区切り文字  初期値は','

public bool ファイル終了フラグ
ファイルが終端まで行っているかのフラグ

public bool 行終了フラグ
行が最後まで行っているかのフラグ

メソッド

public CSVReader(System.IO.Stream stream)
public CSVReader(System.IO.Stream stream, char 区切り文字)
public CSVReader(System.IO.TextReader reader)
public CSVReader(System.IO.TextReader reader, char 区切り文字)
public CSVReader(string path)
public CSVReader(string path, char 区切り文字)
public CSVReader(string path, Encoding encoding)
public CSVReader(string path, Encoding encoding, char 区切り文字)
おもにストリーム、テキストリーダ、ファイルをデータ読み元としています。StreamReaderのコンストラクタと基本的に同じように渡してもらえれば問題は無いでしょう。

public bool MoveNextRow()
次の行に制御を移します。次の行があればtrueが帰ってきます。

public string ReadColumn()
次のカラムを取得します。
カラムが無い場合にでもエラーを出すことなく""を返しますので、がたがたなCSVでも問題ありません。

public void Dispose(bool disposing)
終了処理を行います。

サンプルコード

public void サンプルコード()
{
  using (CSVReader target = new CSVReader(@"IO\ExcelCSV_UTF8.csv"))
  {
    while (target.ファイル終了フラグ == false)
    {
      string actual;
      //ほしいカラム数よびだす。またはカラムの最後まで読みだす
      actual = target.ReadColumn();
      actual = target.ReadColumn();
      actual = target.ReadColumn();
      //行がえ
      target.MoveNextRow();
    }
  }
}

 


勉強会: 05/18 大阪 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告