csvTrim

ということでやっと本来の目的機能実装に辿り着いた。
CSVファイルを間引いたりして整形することをやりたい。
必要に迫られてPerlで2時間くらいででっち上げたものがその前身だ。
使っていくうちに、間引かずにある行数だけスキップして、ある行数だけ書き出す用途にもよく使うようになった。ある指定行数以降後略して書き出さないことにも時々使われる。
最近、CSVヘッダ(行数)の異なるものを扱うようになった。
また、行内のフィールド数が異なるものを扱う必要性が生じつつある動向になってきたので、今のうちに拡張性のある使いやすいインターフェースを確保しておかないとデータ処理で破綻する恐れが出て来た。
csvTrimは今作っているソフトとはある程度独立した機能として作りこんで応用が利くように考えておきたい。
ソリューションエクスプローラーの今のプロジェクトを右クリックして「追加>新しい項目」を選ぶ。種類は「クラス」を選んでファイル名を指定すると新たなファイルがプロジェクトに追加される。
この際、元のプロジェクトと同じnamespaceがあらかじめセットされているので、
これをCsvTrimに書き換える。そして元のファイルのディレクティブへ
using CsvTrim;
を加える。
呼び出されたメソッドの中で一通りの動作を確認したいが、まずはファイルを読むだけ。
得られたファイル名を使ってusingでくるむ。
using(System.IO.StreamReader sReader = new System.IO.StreamReader(ファイル名)){読む処理}
読む処理は当面1行読み込むだけ。tryでトラップする。

                nInput = 0;
                try{
                    while ((cLine = sReader.ReadLine()) != null)
                    {
                        nInput += 1;
                    }
                }catch(Exception e){
                    System.Diagnostics.Debug.WriteLine("入力ファイル読み込み中にエラー!");
                    System.Diagnostics.Debug.WriteLine(e.Message);
                }

って早っ。2万行以上あっという間。