わんくまライブラリ Wankuma.IO.CSVReaderEnumarbleクラス Version1
2006/03/16
この文書はVisual Studio 2005(.NET2.0)をベースに記述されています。それ以降のバージョンや、あなたが読んでいる時点では変更されている可能性があります。
またバージョンアップされている場合にはなんらかかの不具合を含んでいる可能性があります。
ドキュメントへ
CSVReaderEnumarble1d.htm
ソースファイル直接ダウンロードへ
CSVReaderEnumarble1c.txt
利用規約へ
../kiyaku.htm
#region Using using System; using System.Collections.Generic; using System.Text; #endregion namespace Wankuma.IO { /// <summary> /// CSVデータをEnumarble形式で取得します。 /// </summary> public class CSVReaderEnumarble : CSVReader { #region public int カラム数 /// <summary> /// カラム数の内部変数 /// </summary> private int カラム数_; /// <summary> /// 取得するカラム数を指定します。 /// </summary> public int カラム数 { get { return this.カラム数_; } private set { this.カラム数_ = value; } } #endregion #region public CSVReaderEnumarble(int カラム数, System.IO.Stream stream) 指定したストリーム用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// <summary> /// 指定したストリーム用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// </summary> /// <param name="カラム数">指定カラム数必ず取得します。</param> /// <param name="stream">読み込まれるストリーム。</param> /// <exception cref="System.ArgumentNullException">stream が null です。</exception> /// <exception cref="System.ArgumentException">stream が読み取りをサポートしていません。</exception> public CSVReaderEnumarble(int カラム数, System.IO.Stream stream) : base(stream) { this.カラム数 = カラム数; } #endregion #region public CSVReaderEnumarble(int カラム数, System.IO.Stream stream, char 区切り文字) 指定したストリーム用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// <summary> /// 指定したストリーム用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// </summary> /// <param name="カラム数">指定カラム数必ず取得します。</param> /// <param name="stream">読み込まれるストリーム。</param> /// <param name="区切り文字">カンマ以外の区切り文字を利用したい場合に使います。</param> /// <exception cref="System.ArgumentNullException">stream が null です。</exception> /// <exception cref="System.ArgumentException">stream が読み取りをサポートしていません。</exception> public CSVReaderEnumarble(int カラム数, System.IO.Stream stream, char 区切り文字) : base(stream, 区切り文字) { this.カラム数 = カラム数; } #endregion #region public CSVReaderEnumarble(int カラム数, System.IO.TextReader reader) 指定したリーダ用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// <summary> /// 指定したリーダ用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// </summary> /// <param name="カラム数">指定カラム数必ず取得します。</param> /// <param name="reader">読み込みを行うリーダ</param> /// <exception cref="System.ArgumentNullException">stream が null です。</exception> /// <exception cref="System.ArgumentException">stream が読み取りをサポートしていません。</exception> public CSVReaderEnumarble(int カラム数, System.IO.TextReader reader) : base(reader) { this.カラム数 = カラム数; } #endregion #region public CSVReaderEnumarble(int カラム数, System.IO.TextReader reader, char 区切り文字) 指定したリーダ用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// <summary> /// 指定したリーダ用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// </summary> /// <param name="カラム数">指定カラム数必ず取得します。</param> /// <param name="reader">読み込みを行うリーダ</param> /// <param name="区切り文字">カンマ以外の区切り文字を利用したい場合に使います。</param> /// <exception cref="System.ArgumentNullException">stream が null です。</exception> /// <exception cref="System.ArgumentException">stream が読み取りをサポートしていません。</exception> public CSVReaderEnumarble(int カラム数, System.IO.TextReader reader, char 区切り文字) : base(reader, 区切り文字) { this.カラム数 = カラム数; } #endregion #region public CSVReaderEnumarble(int カラム数, string path) 指定したファイル名用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// <summary> /// 指定したファイル名用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// </summary> /// <param name="カラム数">指定カラム数必ず取得します。</param> /// <param name="path">読み込まれる完全なファイルパス。</param> /// <exception cref="System.IO.IOException">path に、ファイル名、ディレクトリ名、またはボリューム ラベルとしては不正または無効な構文が含まれています。</exception> /// <exception cref="System.ArgumentNullException">path が null です。</exception> /// <exception cref="System.ArgumentException">path が空の文字列 ("") です。</exception> /// <exception cref="System.IO.DirectoryNotFoundException">割り当てられていないドライブであるなど、指定されたパスが無効です。</exception> /// <exception cref="System.IO.FileNotFoundException">ファイルが見つかりません。</exception> public CSVReaderEnumarble(int カラム数, string path) : base(path) { this.カラム数 = カラム数; } #endregion #region public CSVReaderEnumarble(int カラム数, string path) 指定したファイル名用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// <summary> /// 指定したファイル名用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// </summary> /// <param name="カラム数">指定カラム数必ず取得します。</param> /// <param name="path">読み込まれる完全なファイルパス。</param> /// <param name="区切り文字">カンマ以外の区切り文字を利用したい場合に使います。</param> /// <exception cref="System.IO.IOException">path に、ファイル名、ディレクトリ名、またはボリューム ラベルとしては不正または無効な構文が含まれています。</exception> /// <exception cref="System.ArgumentNullException">path が null です。</exception> /// <exception cref="System.ArgumentException">path が空の文字列 ("") です。</exception> /// <exception cref="System.IO.DirectoryNotFoundException">割り当てられていないドライブであるなど、指定されたパスが無効です。</exception> /// <exception cref="System.IO.FileNotFoundException">ファイルが見つかりません。</exception> public CSVReaderEnumarble(int カラム数, string path, char 区切り文字) : base(path, 区切り文字) { this.カラム数 = カラム数; } #endregion #region public CSVReaderEnumarble(int カラム数, string path, Encoding encoding) 指定したファイル名用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// <summary> /// 指定したファイル名用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// </summary> /// <param name="カラム数">指定カラム数必ず取得します。</param> /// <param name="path">読み込まれる完全なファイルパス。</param> /// <param name="encoding">使用する文字エンコーディング。</param> /// <exception cref="System.IO.IOException">path に、ファイル名、ディレクトリ名、またはボリューム ラベルとしては不正または無効な構文が含まれています。</exception> /// <exception cref="System.ArgumentNullException">path が null です。</exception> /// <exception cref="System.ArgumentException">path が空の文字列 ("") です。</exception> /// <exception cref="System.IO.DirectoryNotFoundException">割り当てられていないドライブであるなど、指定されたパスが無効です。</exception> /// <exception cref="System.IO.FileNotFoundException">ファイルが見つかりません。</exception> public CSVReaderEnumarble(int カラム数, string path, Encoding encoding) : base(path, encoding) { this.カラム数 = カラム数; } #endregion #region public CSVReaderEnumarble(int カラム数, string path, Encoding encoding, char 区切り文字) 指定したファイル名用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// <summary> /// 指定したファイル名用の System.IO.StreamReader を利用して新しいインスタンスを初期化します。 /// </summary> /// <param name="カラム数">指定カラム数必ず取得します。</param> /// <param name="path">読み込まれる完全なファイルパス。</param> /// <param name="encoding">使用する文字エンコーディング。</param> /// <param name="区切り文字">カンマ以外の区切り文字を利用したい場合に使います。</param> /// <exception cref="System.IO.IOException">path に、ファイル名、ディレクトリ名、またはボリューム ラベルとしては不正または無効な構文が含まれています。</exception> /// <exception cref="System.ArgumentNullException">path が null です。</exception> /// <exception cref="System.ArgumentException">path が空の文字列 ("") です。</exception> /// <exception cref="System.IO.DirectoryNotFoundException">割り当てられていないドライブであるなど、指定されたパスが無効です。</exception> /// <exception cref="System.IO.FileNotFoundException">ファイルが見つかりません。</exception> public CSVReaderEnumarble(int カラム数, string path, Encoding encoding, char 区切り文字) : base(path, encoding, 区切り文字) { this.カラム数 = カラム数; } #endregion #region public IEnumerable<IEnumerable<string>> RowEnumarble() 行を取得します。 /// <summary> /// 行を取得します。 /// </summary> /// <returns>CSVの行</returns> public IEnumerable<IEnumerable<string>> RowEnumarble() { //ファイルが終了するまで行を繰り返します。 while (this.ファイル終了フラグ == false) { yield return Cols(); } yield break; } #endregion #region public IEnumerable<string[]> RowArray() 行を取得します。 /// <summary> /// 行を取得します。 /// </summary> /// <returns>CSVの行</returns> public IEnumerable<string[]> RowArray() { //ファイルが終了するまで行を繰り返します。 while (this.ファイル終了フラグ == false) { List<string> ReturnArray = new List<string>(); foreach (string data in Cols()) { ReturnArray.Add(data); } yield return ReturnArray.ToArray(); } yield break; } #endregion #region public IEnumerable<List<string>> RowList() 行を取得します。 /// <summary> /// 行を取得します。 /// </summary> /// <returns>CSVの行</returns> public IEnumerable<List<string>> RowList() { //ファイルが終了するまで行を繰り返します。 while (this.ファイル終了フラグ == false) { List<string> ReturnArray = new List<string>(); foreach (string data in Cols()) { ReturnArray.Add(data); } yield return ReturnArray; } yield break; } #endregion #region private IEnumerable<string> Cols() カラムを取得します。 /// <summary> /// カラムを取得します。 /// </summary> /// <returns></returns> private IEnumerable<string> Cols() { for (int LoopCounter = 0; LoopCounter < this.カラム数; LoopCounter++) { yield return ReadColumn(); } //行送り this.MoveNextRow(); yield break; } #endregion } }