菊池 Blog

移転しました 続・菊池 和彦の足跡

AILight Banner
AILight Blog

プロフィール

菊池 Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

新人採用…終了?

というわけで、また社員募集しています での採用も大方終了しました。

いつもの事で Joel テストに従って書き問題をやったので問題を晒してみます。

CSVの生成

 

 以下の仕様に基づいてCSV出力を行うコードを実装して下さい。(記述言語は問いません)

 

・文字列と数値からなるデータを出力する

・各レコードは改行で区切られる(以下例外あり)

・文字列はダブルクォート(")で囲まれる

・文字列内で2つの連続するダブルクォートを一つのダブルクォートのエスケープとして扱う

・文字列内での改行が許される

 

public struct Field {

    public bool IsString; // 要素が string の場合には true

    public string StringValue;

    public int IntegerValue;

}

 

において、以下のメソッド形式で実装して下さい。

 

public static void WriteCsv( string pathName, IEnumerable< Field[] > records )

こんな感じ。

P.S.

BCL4.0ではストリームがIEnumerable食えるようになるらしいねー

だからと言って

using( var sw = new StreamWriter( pathName ) ) sw.WriteLines( from rec in records let recString = (from field in rec select field.IsString ? "\""+ field.StringValue.Replace("\"","\"\"") +"\"" : field.IntegerValue.ToString() ) ).Join(",") select recString );

とかワンライナーやる奴は某誰かと同類という事でご遠慮いただけると幸いです。

投稿日時 : 2009年11月6日 16:21


コメントを追加

#  re: 新人採用…終了? 2009年11月6日 16:28 某オレがルールだった人

いいじゃないっすか。
ワンライナー最高じゃないっすか!

#  <br> Twitter Trackbacks for<br> <br> ???????????????????????? <br> [ailight.jp]<br> on Topsy.com<br> 2009年11月7日 12:30


Twitter Trackbacks for

????????????????????????
[ailight.jp]
on Topsy.com
タイトル
名前
URL
コメント