うぃろぅ.log

140字で綴りきれない日々の徒然備忘録

【C#】 続・CSVのヘッダーだけ読み込んで出力する

うぃろぅです。
ふと過去のエントリー見てたら「いやお前何やそのコード」ってなったので書きます。

こんな記事を書いた

vviilloovv.hatenablog.com

あなた疲れてたのよ

こんな小難しいこと全くする必要なかった。

CSVだろうが結局のところテキストなのだから単純に1行目を読み込んでSplitすればおしまいなのである。

純化した

以下コード。

using System.Text;
using System.IO;

class Program
{
  static void Main(string[] args])
  {
    var sJis = Encoding.GetEncoding("Shift-JIS");
    var csvPath = @"C:\Sample\csv";
    var csvs = Directory.GetFiles(csvPath, "*.csv", SearchOption.AllDirectories);

    // ファイル数ループ
    foreach(var csv in csvs)
    {
      // 行数がわからないので1行読込
      string row;
      using(var sr = new StreamReader(csv, sJis)) row = sr.ReadLine() ?? "";

      var outPath = Path.Combine(csvPath, "header", Path.GetFileName(csv));

      using(var sw = new StreamWriter(outPath, false, sJis))
      {
        foreach(var head in row.Split(','))
        {
          sw.WriteLine(head);
        }
      }
    }
  }
}

ネスト深め。なんとかしたいけどそんなに難しいことしていないからこれで。

前回のコードと比べると10行ほどの削減。
あとMicrosoft.VisualBasic.FileIOをインポートしていないから参照の追加が不要。

将来の自分に向けて書いた過去の自分、GJ。褒めて伸ばす。

ではまた。

【ライブレポ】 「花澤香菜30歳記念ライブ」という最高の空間にいたこと

うぃろぅです。

2019/2/25

花澤香菜さんが30歳の誕生日を迎えられました。30歳て。
大学の卒論の話や大学卒業後に「これで無職ですよ(笑)」といった冗談をラジオでしていたのはもう8年位前のことなんですって。

これも1つの節目というもの。そんな記念すべき日に花澤香菜さんのライブがありました。

www.hanazawakana-music.net

特設ページはありませんでした。
ライブタイトルはKANA HANAZAWA Concert 2019 Birthday Special -2019/02/25 -。長い。

こちらのライブに参加したのでレポの様なものを書いていきます。

f:id:vviilloovv:20190225220108j:plain
開演前に撮った写真。文字の反射がオシャレ感出てる

感想としては多分これがすべてな気がしないでもない。

はじめに

  • 個人の感想です。
  • セトリのネタバレがあります。4月からのツアーセトリと関係することがあるかもしれないためご注意ください。
  • MCでの花澤香菜さんの発言を佐橋佳幸さんの発言をとしています。
  • ツアータイトルに負けじとこの記事も若干長めです。
  • 本文は常体で記載しています。勢い大事。
  • 花澤香菜さんのことを香菜ちゃん呼びしています。馴れ馴れしいと感じた方はブラウザバック推奨。

セットリスト

セットリストに従って書いていきます。
セットリストは下記をご参照ください。

vviilloovv.hatenablog.com

1: マイ・ソング

やはりとんでもなく良かった。バケモン曲。
「あ~~~ライブ始まった~~~~~!!!!」って感じ。"ココベース"を聴き始めた時の感想とほぼ変わらず。
テンション的には開幕"Honey♥Come!!"のそれ。ここは両国国技館だった…??

開幕から最高のスタートを切った勢いそのままに次の曲へ。

2: Change!

うーーーーん、刺さらなかった…。 ライブで化けるといいなあ、だいたいこういう曲はライブ化けすることがあるんだよなぁ。

vviilloovv.hatenablog.com

ライブ前に書いたレビューから引用。

案の定化けた。いやめちゃくちゃ高まったかと訊かれてしまえばそこまではいかなかったけれど、Wow~のところを一緒に歌うというだけでかなり楽しい。

わたしと歌ってくれますか?

そりゃ歌うさ。歌いますともええ。はい楽しい。

3: パン

香菜ちゃん本人がよほどこの曲を歌いたかったのか、歌いだしの時点から少し笑ってしまっていた。なにそれ見てて楽しくなるに決まってるやん。
以前もどこかで書いたが香菜ちゃんが楽しそうに歌っている姿を見るのが大好きな私としては、この曲は最高に幸せになれる曲である。

シナモンロール クロワッサン チョココロネ
ミルクフランス従え 強大な敵に立ち向かう

身内の花澤勢1とこの曲について話した際、「どのパンの歌い方が好きか」という非常にコアな話題になった。
2,3人でこの話をしていたが、不思議なことに全員好きなパンが違っていたから面白い。私はミルクフランスの箇所が好き。

先に挙げたレビューで星野源っぽいという感想を書いていたが、在日ファンク好きの花澤勢曰く「星野源とハマケンは昔同じバンドだったんすよ」とのこと。
知らなかった…。意外と私の感覚も捨てたもんじゃないなと。あとレビュー読んでくれてありがとう。

4: おとな人間

けんけんぱっぱけんぱっぱ。
この文章を書いているのはライブ2日後だが未だにリフレインしている。紛うことなき天才。

ちゃんちゃんこのぬくもりに抱かれて
鏡のない世界へ行きたい

ライブで聴くと抱かれてのところ以降の開放感がいっそう際立つ。

あと細かいところだけれど最後の方のこどもにのところの息の出し方?抜き方?がめっちゃ好き。リップノイズが好き2と同目線。

ここまで曲と曲の合間に拍手の時間があるのみでノンストップ。
既に大分濃い。何がと訊かれても困ってしまうが。

MC

花「マシュマロマンからピンクマンになりました花澤香菜です!」

どのタイミングか忘れてしまったが、ここまでの間に白の衣装からピンクの衣装に着替えていたのでそのことについての言及からの挨拶。

ピンクの衣装は北京テレビの年越し特番で着ていた衣装と同じとのこと。
このツイートの衣装である。

花「こんなに大勢の方に誕生日を祝ってもらうのは初めてで嬉しい!!
私お誕生日回とか小さい頃もやったことなくて、マクドナルドのお誕生日回用の小部屋みたいなのあるじゃないですか、ああいったのに憧れてたんですよね(笑)」

誕生日当日のイベントは2年前にもあったが、確かにホールでのライブは初。
むしろこれまでに2回しかなかったことからドル売りとの違いを感じる。

ちなみにマクドでの誕生日回は特に年齢制限があるようには見えないため、今からでも可能なんじゃない?

www.mcdonalds.co.jp

ここからはアコースティックパートということで一旦着席。
軽くコール&レスポンスをした後、今回のアルバムの話に。

花「今回のアルバムは"ココベース"ということで、私の音楽活動のベースとなっている方々にご協力いただいています」
佐「香菜ちゃんにリストアップしてもらって、ダメ元で全員に連絡したんだよね」
花「そうなんです」
佐「そしたら全員からOKがもらえて。本当に運が良かった」

「全員」だったか「ほぼ全員」だったかがあいまい。でも確かにこの面子は豪華という他ない。

そのままの流れで楽曲の話に。

佐「パンね」
花「パンです(笑)私ずっと『在日ファンクとパンは合う!!』と思っていて(笑)」
佐「(在日ファンクの)ハマケンから『メロディーラインは大体できたけど歌詞がまだないから何かネタない?』って連絡をもらって。それをそのまま香菜ちゃんにメールしたんだよね」
花「はい。それで私が今の悩みというか考えていること、心境とかやってみたいこととかをリストアップして佐橋さんに返信したんです」
佐「確か半分くらいパンに関することだったと思うんだけど(笑)、それをそのままハマケンに転送したんだよね。そしたらパンになったと」
花「私この曲歌うの本当楽しくて!!」

確かに楽しそうなのはこれ以上ないほど伝わってきた。すばら。

花「あとさっき歌った"Change!"についてですね」
佐「OKAMOTO'Sにお願いした楽曲で、作詞がショウくん、作曲がコウキくん」
花「はい。この曲の収録の時にOKAMOTO’Sのドラムのレイジくんとご一緒したんですけど、私実はレイジくんとは初めてじゃなくてですね」
佐「あ、そうなんだ」
花「そうなんです。ご存知の方もいるとは思うんですけど、私子役やってたんですよ。(観客の反応を見て)そうそう。それで子役時代に"あっぱれさんま大先生"って番組に出演してたんですけど、そこでレイジくんと共演してたんです」
花「なのでOKAMOTO'Sとご一緒できるってなって嬉しくてですね。収録の時にレイジくんがずっと帽子を被ったり脱いだりを繰り返していて『あ~レイジくん変わってない!!』ってめちゃくちゃ嬉しくなっちゃいました(笑)」
佐「あいつの落ち着きないのは子役時代からずっとなんだね(笑)」
花「そうなんです、ずーっと帽子脱いだり被ったりまた脱いだり飲み物飲んだと思ったらまた帽子被ったり…(笑)」

楽曲についてではないけれど、香菜ちゃんが"くん"付けで誰かを呼ぶのに親しみを覚えるタイプのオタクであるところの私はずっとニヤニヤしていた。キモイとか言うな

花「そろそろ次の曲にいこうかな。次はカバー曲を歌います」

バンマスが佐橋さんになってから"もう恋なんてしない"、"若者のすべて"と個人的スマッシュヒットを連発しているカバー曲。今回はどうなるか。

花「今回は"おとな人間"を作ってくれたチャットモンチーの"染まるよ"をカバーします!」

いや。いやいやいや。ずるいやん。
やばいやつ。普通にガチの悲鳴を上げてしまった。それに対して反応されてしまった。
いやいやよりによって"染まるよ"選ぶのだけはあかんやつやん。

花「お。何人か知ってる方もいるみたいですね。チャットモンチー聴く人は大体"染まるよ"好きだと思うんですよね。」
私「わかる!!!!!!(クソデカボイス)」
花「わかるよね!なので今日はこちらの曲をカバーさせていただこうと思います」

大きな声出してごめん。でもそうでしょ。そうだよね??
と思ったけど身内の花澤勢は知らない曲だった。私は悲しい(ポロロン)。

ここから曲が終わるまでの記憶があんまりないため、曲が始まる前にもう少し佐橋さんと何かを話していたが記録できていない。ごめん。

5: 染まるよ

www.youtube.com

みんな原曲も聴いて。ちょっと前にベスト版出たからそれ聴けば他の曲も網羅できる。

BEST MONCHY 1 -Listening-(完全生産限定盤)

BEST MONCHY 1 -Listening-(完全生産限定盤)

トリビュートアルバムではきのこ帝国がカバーしている。

CHATMONCHY Tribute 〜My CHATMONCHY〜

CHATMONCHY Tribute 〜My CHATMONCHY〜

トリビュートアルバムには"風吹けば恋"が収録されていない。
"風吹けば恋"を聴きたいなら"からかい上手の高木さん"のED集を聴こう。尊い

つい熱くなってしまった。

私はといえば、イントロからずっと泣いていたので特に語ることはない。
本当に染みる曲なのでぜひ聴いてほしい。

ありがとう。そしてありがとう。

MC

花「次は"ゆうのそら"を歌います」
佐「この曲はアルバムを作るってなる前からハルちゃん(ハルナ)が書き溜めていた曲の1つで、ハルちゃんは英語で歌詞を書くんだよね。だからこの曲も英語のデモテープをENA☆に歌詞を日本語にしてもらってにして作った」

なるほどな??
パンフ情報によると、"You Already Have"という曲だったらしい。
その情報を入れてから"ゆうのそら"を聴くとこの曲は化ける。

6: ゆうのそら

つまり"ゆうのそら"の"ゆう"は"You"だと。

ゆうのそらに手を伸ばして
あなたのこと想った
切ないほどにきれいだった
あなただけを想った

1番サビの歌詞。つまり最初から"あなたのそら"のことを考えていると!!
めっっっちゃ想ってるやん!!!

離れていても忘れないでね
違うそらのした
あなたが幸せであるように
ゆうのそらを見上げながら
あなたのため願った
どうか今も笑っていてね
あなたのそら祈った
ありがとう

極めつけが最後のサビ。
これまで"ゆうのそら"と表現していたけれど最後の最後で"あなたのそら"表記。
あ~~~~これまでぼんやりと夕暮れの空にあなたを重ねていたけれど最後だけははっきりとそらにあなたの姿を描くと!!エモエモのエモ。

事前知識を含め、ライブで聴いて一番化けた曲かもしれない。

MC

ここでバンド紹介。

花「まずはギター&バンマス、佐橋佳幸!!」
花「佐橋さんいつも楽しいお話をしてくださって、毎回楽しく打ち合わせができています」
佐「黙ってると死んじゃうからね(笑)」
花「またまた(笑)」

お話しの上手さは経験値の高さを感じる。

花「マニピュレーター&ホーンズ、ゴンドウトモヒコ、ゴンちゃん!!」

なんて言い方をしていたのか忘れてしまったのでパンフ記載のパートを載せておく。 マニピュレーターはライブ用の音楽編集とか打ち込みとかを担当している方。すごい。

花「ドラムス、高橋結子、けっちゃん!!」
佐「高橋結子の"ゆうこ"は"結ぶ"に"子どもの子"って書くんだよね。その"結ぶ"からとって"けっちゃん」
花「私も最初お会いした時どうして"けっちゃん"って呼ばれてるのか全然わからなかったです(笑)」
佐「僕なんかは逆にけっちゃんけっちゃん呼んでるからたまに本名なんだっけってなっちゃう(笑)」

ニックネームが馴染みすぎて本名ど忘れする、割とあるある。というかオタク連中はハンネ呼びばっかりで本名知っていても普通に忘却する。

花「けっちゃんは家にテレビがないらしくて」
高橋結子(以下"高")「そうなんです、だから香菜ちゃんの出演されてるアニメとか番組とかのチェック全然できないんですよ〜、申し訳ない」
花「いやいやとんでもないです」
高「ラジオはあるのでそっちはチェックできてます。ANNも聴かなきゃ!!」
花「ありがとうございます!!明日私"オールナイトニッポン"出るのでみんなもよかったら聴いてね!!」
高「お便り送りますか(笑)」
花「ぜひぜひ!!」

www.allnightnippon.com

私は次の日仕事だったので聴けていない。探せば聴けるんじゃないかな。

高「でも今度家にテレビ来るのでそしたらアニメもチェックできます」
花「あ、そうなんですね!」
佐「僕がこの前打ち上げで当たったテレビあるからそれあげるよってなったの」
高「そうなんです」

飲みの席でオーブンレンジなら当たったことある。すでに持っている物が当たった時の対処、意外と困るんだこれが。

花「キーボード、齋藤有太!!」
花「齋藤さんは"春に愛される"の頃からご一緒してもらえているので、佐橋さんと同じくらいの付き合いのある方です」

齋藤さんと佐橋さんで「そういや同じ時期からだね〜」みたいな会話。アットホーム感。

花「ベース、井上富雄!!」
井上富雄「ちゃんと"ベース"って読めたね(笑)」
花「そう、リハの時に"バス"って読んじゃって(笑)」

確かに"Bass."って書くもんね。逆にこれまでは"ベース"って記載されていたんかなという予想ができる。

花「このメンバーでやっていきます。次は"初恋ノオト"を歌います」

7: 初恋ノオト

2ndシングル。最近割と歌ってくれていて嬉しい。
このライブで"初恋ノオト"、ということはツアーで"happy endings""Silent Snow"あたりを歌ってくれる可能性。期待が高まるところ。

最後のふたりだけがのところ、ライブのたびに良くなっていく。いや最初が悪いとかそういうわけではなく、最初80点くらいだったのが今は300点みたいな。最初が100点じゃないのはご愛嬌ということでひとつ。

8: 透明な女の子

安定のって感じ。この曲に関して語るの、案外難しい。

なのでこの曲に関する思い出でも。

この曲のリリイベは2016/4/3に青山であったんだけど、そのイベントでは空気公団のカバー5曲に加えて"マラソン""Silent Snow"も歌うというやべーセトリとなっていた。

カバーライブ、やってくれません??

MC

花「次は"春に愛されるひとに わたしはなりたい"を歌います。この曲はいきものがかり水野良樹さんに作詞作曲をしていただきました」
花「この曲はなんというか『包容力』を感じる内容となっています。製作したのは舞台の前くらいで、期待とか不安でわーってなってた時にこの曲を頂きました。聴いたらすごく元気が出てきて、今では私が元気になりたい時に聴くテーマ曲のようになっています」

9: 春に愛される人に わたしはなりたい

癒し空間。

たとえばさ ほら かなわない夢の数を
かぞえ 眉をひそめてしまうより
へたくそな でも 誰かをおもいやるための
言葉だけを 歌おう

CD音源の方の話になるけれど、この部分のコーラスが好き。

桜はまた この世界に 瑞々しく生まれていく なんどでも

Cメロ部分の音の伸び、何度聴いても良き。

アウトロを少し長めにとり、その間に香菜ちゃんは黒の衣装に。

MC

花「黒の衣装に着替えました!! 30代だからね。大人の魅力ってやつだよ(笑)」

普通に似合っていた。ディナーパーティーにいそう。

花「30歳を実感したことがあってね。今朝、そう、30歳最初の朝にね?ハンドクリームを塗ろうと思って出したらいつもよりちょっと多めに出ちゃって。でもまあいいかって塗ってたんだけどいつまでたっても浸透しなくて!!」
佐「それ逆なんじゃない? 年とると乾燥するから逆に浸透しやすくなると思う」
花「あれ? 確かにそうかも」
佐「だからまだ大丈夫だよ。俺くらいになると塗っても塗っても吸収してく(笑)」
花「そっか(苦笑)、ならまだ大丈夫ってことにしておきますね(笑)
あとそうだ、30歳の目標を発表したいと思います!!」

\おー?/

花「30歳の、というか5、6年前から考えてはいるんだけど。中国語を話せるようになりたいなって」
花「ほら今ってSkypeとかで海外の方とも簡単に打合せできるようになったじゃないですか。なので中国のゲームのお仕事の話がくることが結構多くてですね。中国の方ともお話できるようになりたいな、と」
花「それで、というわけじゃないですけど4月には上海での公演も決まってですね」
私「行くよー!!」
花「おお!!来てくれる人がいる!!海外なので『みんなもぜひ』とは言いづらいなって思っていたので心強い!!気をつけて行こうね」
花「中国の話だと、去年の年末に北京テレビさんのライブに出させてもらってですね。そこではさっき着てたピンクの衣装を着てたんですけど、気温が-5℃だったから寒くて寒くて(笑)」

さっき貼ったツイートの衣装。

花「恋愛サーキュレーションを歌わせていただいたんですけど、言葉わからないはずなのに一緒に歌ってくれたりするんですよね。熱量がすごいなって」
花「そう、それでね。恋愛サーキュレーションを立ちっぱなしで歌うのもなんだかなって考えて軽く振り付けを考えてリハに臨んだんですよ。そしたら歌いだしたときにロシア人のダンサーさんがぶわーって出てきて!でなんかかっこいいダンス踊りだすのよ!!『あ、そういう感じ?』ってなった(笑)」
花「チェックできる方はチェックしてみてください」

つべに公式じゃないけれどあがっている。公式ではないため、気になる方は個人でチェック。

花「30歳の目標はもう1つあります!」
花「もう1つの目標は、『力を入れすぎない』ということ。頑張らないとかそういうことじゃなくて、私、何か新しい挑戦をするときに緊張とか期待とかで必要以上に力が入っちゃうんですよ。なので、肩の力を少し抜いて新しいことに挑戦できればなと。今年も来年も、みんなが驚いてくれるようなことに挑戦したいと考えている途中なのでよろしくお願いします!」

来年も何かやるらしい。期待しておこう。

花「といったところで、そろそろ次の曲に行こうと思います。次に歌うのは"ミトン"です」
佐「この曲は最初作詞も岡村(靖幸)ちゃんに頼もうと思ってたんだけど、岡村ちゃん、詞が遅いんだよね~」
花「(なんとも言えない表情)」

そりゃ反応しづらいわな。

佐「なので作詞は別の方に任せよう、ということで作詞は大貫(妙子)さんにお願いしました」
花「この曲なんですけど、歌っていてとても楽しい気分になるんですよね」
佐「じゃあやっていこうか、"マトン"だっけ?」
花「それは羊の肉です!(笑) 佐橋さんこういうことばっか言うんですよ(笑)」

溢れる漫才感。楽しくやっているようでなにより。

10: ミトン

曲の開始と同時にダンサー2名が香菜ちゃんの左右に。
エミ(藤田笑美)さんとリサ(荻島梨沙)さんの2人だったはず…。間違えていたらごめんなさい。
間違えているとしたらどちらかがアヤカ(井田彩花)さん。

やっぱり聴けば聴くほど星間飛行。楽しい。

恋は科学じゃない カミナリに打たれたようなものって
言ってた人がいたわ
それでもとまらない
あなたが運命の人って思っていた

サビ前にダンサーの2人が手に真っ赤なミトン3を装着。

サビの部分に振り付け有り。
といっても非常に簡単で、

恋は科学じゃない カミナリに打たれた

ワイパー。ミラーの場合左から。

ようなものって 言ってた人がいたわ

ワイパーの左右で止めて手を開いたり閉じたり、というかミトン的には鍋をつかんだり離したり。
ミラーなら左側で4回、右に動かして4回。それを2セット。

それでもとまらない あなたが運命の人

ワイパー。

以上である。すぐに振りコピできるって素晴らしい。

で、この手を開いたり閉じたりする動作、どこかで見覚えがある。

www.youtube.com

そう、"Honey♥Come!!"のサビ後半のそれ。ここは両国国技館だった…!!
違うか。そうか。

振りコピも含め、アルバムからの期待通り非常に楽しい。すごい。

11: 大丈夫

ダンサーが出てきたのでそうかなとは思った。

やはり振りコピは楽しい。スフィア再始動おめでとうございます。

曲としてもとても楽しい。アニメも楽しいし全方面ハッピー。すごい。

書きたいことはレビューの方に大体書いたのでこのへんで。

MC

ここでサプライズ。ハッピーバースデーのあの曲が演奏され、みんなで合唱。
誕生日当日に本人へ「おめでとう」を言える機会なんてそうそうないため、全力で声出し。

サプライズでケーキも登場。

ケーキは写真参照。

佐「ばれないようにするのめっちゃ大変だった!!」
花「ぜんぜん気付かなかったです」
花「え、嬉しい。嬉しいです。どうしたらいいんだろう」
佐「そういう時は楽しい歌を歌えばいいんだよ!!」

12: 25 Hours a Day

この流れは完璧すぎる。あまりにも流麗。
そして曲のチョイスも完璧。誕生日を祝ったことで温まった喉をそのまま使える。

この曲と"CALL ME EVERYDAY"は割と定番曲になりつつある。一回練習すれば他のライブにも活かせるからってのもあるとは思うが

13: CALL ME EVERYDAY

もしもしのお時間。

ちなみにこの2曲、2018/2/10にあった"Spring will come soon"ライブでもこの並びで歌っていた。

コール&レスポンス曲だからね。同じくコール&レスポンス曲ということで、そろそろ"melody"とか歌いませんか?練習の時間があんまりない?そっかぁ。

14: 恋する惑星

バンマスが佐橋さんになってからこの曲を歌うのは初。のはず。

やっぱり恋惑は跳べるし楽しい!!

ラスサビあたりで風船が降ってくる演出あり。
"25"ライブの時とは違い4、ステージ上にはあまり降ってこないようになっていた。

f:id:vviilloovv:20190228174053j:plain
豊崎愛生さんカラーを無事確保

プロンプターの前に溜まっていたようで、歌い終わったあとにステージ下に蹴散らしていた。

MC

花「次で最後の曲です。最後まで盛り上がっていきましょう!!"あたらしいうた"!!」

15: あたらしいうた

Bメロで跳べるのは大きい。定番の盛り上がり曲。もうあたらしくはないけれども

歌い出しのところがライブ仕様になっていて聴くたびにテンションが上がる。

安定の盛り上がりで最後の曲も終了し、よくあるアンコールという名の休憩時間。

アンコール

16: 恋愛サーキュレーション

やはり香菜ちゃんのキャラソンといえばこれ。中国でのライブでキャラソン多めに歌ってくれると嬉しいけれど、さてどうなることやら。

生で聴くのは"Blue Avenue"ツアー以来かと思ったが、2017/2/5のisai Beatライブ で歌っていた。ので2年ぶりくらい?認識誤ってたら教えてください。

蛇足だけどこのライブにしてもisaiの方にしてもライブ特設ページ作らないの…?
私の探索能力がなっていないだけであるのに見つけられていないだけだったらごめん。

香菜ちゃんに歌ってほしいキャラソンはいっぱいあって、キャラソンCDも出したんだからキャラソンライブやってみてもいいんじゃないの??

"ゼンマイ式しあわせクロック"とか"コイノシルシ from Shiori"とか、需要はここにある。
まぁ"ゼンマイ式~"の方は本人に「この曲好きです」って伝えたときに「何の曲だっけ…?」って言われてしまったので望みはなさそうだが。ショッギョ・ムッジョ!!

花澤勢の中ではもうすっかり「花澤香菜はアーティスト活動もがっつりしている声優」というイメージになりつつあるがファンでない人にとっては「かわいい系のキャラを演じることが多い声優」というイメージだと思う。
実際最近になっても「へーアーティスト活動もやってるんだ」と言われたことが何度かある。なのでそういった層も招きやすいキャラソンライブ、盛り上がるよ。どう??

曲の話についてはいつも通りかわいい曲だった、でいいと思うのでそれで。
"もうそう♡えくすぷれす"は<物語> フェスで聴けるでしょ。多分。

www.monogatari-series.com

17: 星空☆ディスティネーション

いつもの。変わらない安心感がここにはある。
もはやこの曲に関しては語ることがないのでは。

アレンジで好きなのは"FIRE HORNS"のお二人がいた時のサビ前の盛り上げ。
「この曲その盛り上げ方も楽しいやん!!」ってなったのでまたどこかで聴きたいなあ。

デビュー曲はやはり特別だな、と。"Raise"然り"夢のつぼみ"然り。

MC

花「アンコールありがとうございます!!」
花「"恋愛サーキュレーション"、久しぶりに歌ったんだけどみんな(コール/手拍子等が)完璧だね! いつでもこいって感じだね!!」

そりゃキャラソン代名詞だもの。その辺のアニメ好きに「有名なキャラソンを挙げてください」って言われたらこの曲は多分5番目くらいには挙がると思っている。統計とってないからわからないけれども。
他に挙がりそうなのは"God knows..."かな。あと"チチをもげ!"。ガッシュつながりなら"ベリーメロン"。ガッシュ半端ねえな…。最近はアニメが多すぎてこれってのはなさそう。

花「ちょっと物販の話をするね。まずパンフレット。これがね、すごいの。ありがたいことに今回も私の関わった作品の方がイラストを寄せてくれているんだけど、すごいのよ。今回のイラストだと"川柳少女"は未来の作品ですね。みなさん"川柳少女"をよろしくお願いします」

購入して読んだが、確かにすごい。物販なので内容を載せられないことが惜しいレベル。
今回のアルバムについてのインタビューもがっつり掲載されている。読もう。

花「あとはパーカーとか。着てくれている方もいますね。あとなんだったっけ、まぁみんなの方が多分詳しいと思うからこれくらいでいっか」

www.hanazawakana-music.net

貼っとく。パンフを読んだ感じ4月からのツアーでも販売しそう。

物販ページではめっちゃ青かったが実際にはこんな色味。普段使いできそう。

花「今日は来てくれて本当にありがとうございました。そう、今日平日なんだよね(笑)それなのにこんなにたくさんの方に来ていただいて…。会社とか学校とかあったろうに。ありがとうね」
花「今日のライブはこれで終わっちゃうんだけど、4月からはツアーがあるのでまた皆さんとお会いすることができます。ツアー、ほんっとうに楽しみで今から待ち遠しいです。ツアーの方では今日歌えなかった曲、"ココベース"の歌えてない曲もそうだし、最近歌えてない曲も歌えたらいいな、と考えているのでお時間のある方はぜひ来てみてください」
花「最後に歌うのは"Ready to go"です。この曲は私が作詞をさせていただいて。私が今の想いが詰まっている曲となっています。今日は本当にありがとうございました」

18: Ready to go

やはりエンディング感。

きっとアンコール後の最終曲になるんじゃないかなーって。

レビューで書いたが、概ね間違ってなかったと言える。

あとこの曲、アルバムを聴いている段階では全く意識していなかったが3拍子の曲なんだね。オタクは3拍子曲に適応するのが苦手。
3拍子の曲の癒し感が結構好き

いいライブだった…と感傷に浸れる良曲。きっとツアーでも同じようなタイミングで聴けるはず。また聴きに来ような。

この曲でバンドメンバーは佐橋さんを残して降壇。ありがとうございました。

19: おやすみ、また明日

おまけ。これを聴かないと帰れねえよなあ?

それとも大好きなあの本をもう一度読もうかな

ここの後、お馴染みとなった「今日のひとこと」。

花「30歳を実感したこともう1つあったんだけど言ってもいいですか?」

あーなるほど。ここもMCにしちゃおうという魂胆だな??

花「今日のライブのリハーサルをジャージを着てやってたんですよ。で、リハーサル終わって衣装着替えるときにふと足見たらジャージの跡がくっきりのこっていて『弾力性…』ってなりました(笑)」

さっきより30歳っぽい!!

花「違うわそういうこというコーナーじゃなかったわここ。えーっと、今日は最高の誕生日を迎えることができました。本当に楽しかった。今度のツアーも楽しみだなあ。みんなも気をつけて帰ってね。ありがとうございました。今日は日本酒が美味しそうだなぁ。楽しみ(笑)」

そう、そういうのだよこのコーナー。コーナーて。
でも良きライブだった。

仕事が思うようにいかなくて泣きそうでも

この曲最近毎回歌ってくれるんだけどいつもここで泣いちゃう。
豊崎愛生さんのライブで"春風"を合唱するときに絶対泣いちゃうのと多分原理的には同じ。
というか最近ライブ行って声聞けただけでも泣きそうになっちゃう。病気では??

おわりに

お疲れ様でした。

どのタイミングか忘却してしまいましたが、ハート型のメッセージカードが曲中に降ってくる演出があったため風船と一緒に撮っておきました。

f:id:vviilloovv:20190228174122j:plain
"あたらしいうた"の時だったような

直筆メッセージのプリント入り。誰かのライブで同じような演出があったことがあるのだけれど、誰のだったか忘れてしまった。 小倉唯ちゃんだったかなぁ。

繰り返しになってしまいますが、平日にも関わらず誕生日当日にイベントがあることは素晴らしいことでした。まさしく最高の空間だった。
ツアーも楽しみだなあ。多分中国公演も行きます。レポは書くかもしれませんが、中国語の心得はないのでMC何もわからなかったらごめんなさい。

いるかわかりませんがここまで目を通してくださった方にも感謝を。
4月のツアーで僕と握手!! いらんか。せやろな。

ではまた。


  1. (主に)香菜ちゃん現場に行けば会える人たち。香菜クラ・香菜友と呼ぶ人もいる。

  2. 佐倉綾音さん談。わからんでもない。

  3. 鍋つかみ。ごく普通の親指とその他の指に分かれているやつ。

  4. ドラムの上にも降ってきていたのでSATOKOさんがめっちゃ邪魔そうにしていた。

【セトリ】 花澤香菜 / KANA HANAZAWA Concert 2019 -Birthday Special 2019/02/25- セットリスト

2019/2/25にTOKYO DOME CITY HALLで開催された
KANA HANAZAWA Concert 2019 -Birthday Special 2019/02/25-
セットリストです。

1: マイ・ソング
2: Change!
3: パン
4: おとな人間
5: 染まるよ / チャットモンチー (カバー)
6: ゆうのそら
7: 初恋ノオト
8: 透明な女の子
9: 春に愛される人に わたしはなりたい
10: ミトン
11: 大丈夫
12: 25 Hours a Day
13: CALL ME EVERYDAY
14: 恋する惑星
15: あたらしいうた
アンコール
16: 恋愛サーキュレーション
17: 星空☆ディスティネーション
18: Ready to go
19: おやすみ、また明日

f:id:vviilloovv:20190225220108j:plain

花澤香菜 5thアルバム "ココベース" 全曲レビュー

うぃろぅです。

2019/02/20 花澤香菜 5thアルバム "ココベース" 発売

フラゲ日には買ってきた、ココベース。

f:id:vviilloovv:20190222232834p:plain
圧倒的に唯ちゃんが可愛い

唯ちゃんのアルバムと発売日が同じ、実質私信。

さておき、私はいつも新曲は発売してから聞くようにしている。
ライブでたまたま聴く以外ではラジオも聴かないようにしてつべに上がっている先行試聴も見ない。
いわゆる"解禁日"に解禁するのが何と無く好きというわけである。ボジョレーかよ。

今回のアルバムも同様にフラゲ日に購入してから聴いた。
最近は斜に構える風のスタンスになってきていて、割と冷静に推しを追っている(当社比)。

1曲目を聴いてたまげた。まさに魂消た。

想像のはるか上をぶち抜かれた。ので書いていこうと思う。
推敲していないので読みづらい箇所があったらごめん。

はじめに

  • 私は音楽に詳しいわけではない。そのため専門的なことは全く書くつもりがない。
  • 「マイ・ソング」「おとな人間」を聴いた時点でこのエントリーを書こうと思ったため他の曲はまだ聴いていない。そのためグダる可能性が大いにある。
  • あくまで個人の感想である。お前の感想なんてどうでもいいよ、という方はブラウザバック推奨。
  • 特に伝えたいことがあるわけではないのでお時間のある方のみどうぞ

収録曲

  1. マイ・ソング
  2. 大丈夫
  3. おとな人間
  4. パン
  5. Change!
  6. ミトン
  7. Tact
  8. 春に愛されるひとに わたしはなりたい
  9. おしえて
  10. 満月の音
  11. ゆうのそら
  12. Ready to go

DVD特典 1. 若者のすべて
1. Trace (Acoustic ver.)

順番に聴きながら書いていく。新曲以外も改めて聴いて書く。

マイ・ソング

作詞作曲: 山内総一郎

歌い出しからしてもう大好き。とんでもない疾走感。
「あ〜〜アルバム聴き始めた〜〜〜〜」という気分になってくる。
気分的には"claire"ライブの"青い鳥"が流れてきた感じ。疾走感的には"マラソン"。

まず最初のギターからしてもう楽しい。
それもそのはず、作詞作曲はフジファブリック山内総一郎氏である。そりゃキャッチーにもなるよね、ありがとうございます。

僕は放っている 僕はここにいる
熱くなっている 心叫んでいる
僕は歌っている 君を歌っている
すべて飛び越えて 届いてる? ねえ

Cメロ部分、具体的にどれとは浮かばないけれどどことなくボカロ曲っぽい印象を受ける。
ODDS&ENDSっぽいのかなぁ、そんな感じ。好き。

僕たちはいつだって生きてたいのです

「生きていたい」でも入るけれど「生きてたい」とすることで疾走感が増している。
こういう小技が結構好きで、歌詞を眺めてなるほどなぁとなる。考え過ぎかもしれないが。

この曲でがっつり心を掴まれてしまった。今回のアルバムはすごい。

大丈夫

作詞作曲:槇原敬之

こちらはシングル曲。
レイトンのアニメ、ぼちぼち見続けているがカトリーが伸び伸びと声を出しているように聞こえてとても良い。

作詞作曲は槇原敬之さん。とても強い。
以前のライブで「もう恋なんてしない」をカバーしていたが、それが伏線になっていたとかなんとか。

ライブで一緒に踊るのが楽しい。本人振り付け忘れてたけど
「雲ダンス」といい「Merry Go Round」といいたまに振り付け曲があるととてもライブが楽しくなる。
まぁ私がスフィア勢だからなのかもしれないけれど。彼らは振りコピに魂を捧げている。

シングルの方に収録されている"Neo Country Ver."がまた良い。
機会があったら聴いてみてほしい。

おとな人間

作詞作曲: 橋本絵莉子

けんけんぱっぱけんぱっぱ。頭にものすごくへばりついてくるメロディーライン。
「だから私はあなたを手放せない」の恋愛スピリッツソウルをとても感じる。

作詞作曲はチャットモンチー済の橋本絵莉子氏。
この世界観、なんか好きなんだよなあ。

恥ずかしいことが恥ずかしいのよ

なんで年取ると道端でできなくなることが増えるんだろうねえ。

鏡のない世界へ生きたい

ふと鏡をみたときにハッとしてしまう、あるあるだなぁ。
虚像のはずなのに何よりも現実を映し出しているという。

おとなになれ
こどもに戻って

やり残したことをやって歩いていくかー、みたいな感じかなぁ。ここら辺のセンスは自分には備わっていない。

「けんけんぱっぱ」のリズムは多分これふとしたタイミングで脳内再生される。すごい。

パン

作詞作曲: 浜野謙太

作詞作曲は在日ファンクの浜野謙太氏。

ごめん、在日ファンクは名前しか知らない。

で、何と無く聴いた感じとしては

だった。在日ファンクのファンの方からしたら全然違うかもしれないが、少なくとも自分はそう感じた。

歌詞。

8ミリみたいに細切れる窓
懸命な私 映ってる

金曜ロードショーのオープニング映像が浮かんだ、今は違うんだっけ?

全体的に歌詞眺めたらこれ本当にほぼパンのことしか歌ってない。
なのになんでこんなかっこいい感じになってしまうん?? ははーんさては久保帯人か????

ほしいもはどこに消えた?

まあ本人がきっと楽しく収録したんでしょう、それならよし。

Change!

作詞: オカモトショウ
作曲: オカモトコウキ

作詞作曲はOKAMOTO'Sのボーカルとギターのお二人。

うーーーーん、刺さらなかった…。
ライブで化けるといいなあ、だいたいこういう曲はライブ化けすることがあるんだよなぁ。

サンバで使うような小太鼓みたいなのチャカポコ鳴らしたらめっちゃ楽しそう。
さながらカーニバル。\カーニバルダヨ/

お茶を濁すために歌詞を眺めながらグダグダと。

あなたの心を揺らせることが嬉しくて

揺らしてみてえよなあ俺もなあ。
私が何かをして喜んでくれたなって感じることなんてこれまで数えるほどしかない。泣いてないよ??

私と歌ってくれますか

それより僕と踊りませんか。

ミトン

作詞: 大貫妙子
作曲: 岡村靖幸

イントロで「ハニーアンドループス!?」ってなったけどよくよく聴いたら全然違った。

あとあれだ、イントロに聞き覚えあると思ったらこれ星間飛行だ。

結構好きな曲。ふんふん聴ける曲(伝われ)はだいたい好きな部類で、これもそのカテゴリに入る。

片手をポケットに入れさせて

冬が寒くて本当によかったってか?? あーー好きーーー。
スノーースマーーーーーイル!!

恋は科学じゃない カミナリに打たれたもの

恋ははしかのようなものとも聞いたことがある。

わたし見てきたの

ここの歌い方好き。

最後のところ、初めて聴いたときには「音飛び…?」ってなった。
こういう新鮮な驚き感、よき。

全体的にこの曲もかなり好き。すごい。

Tact

作詞: 花澤香菜
作曲: 佐橋佳幸

flattery?と同じ枠組みで歌って欲しい。もしくはおやすみ、また明日。

こういう耳が幸せ系の曲もまた幸福度が高い。

作詞は花澤香菜さん。言語センスがちょうどいいところ。

ちなみに言語センスがとんでもないとわたしが常々思っているのは桜井和寿さんと田淵智也さん。奴らはぶっ飛んでる。好き。

三つ編みの少女

指揮棒を執っている遠子先輩の姿が浮かんだ。可愛いかよ。

秋の夜長に窓の外を時折思い出したように見上げながら鼻歌を歌いつつ本を貪る遠子先輩。良い…。

春に愛されるひとに わたしはなりたい

作詞作曲: 水野良樹

こちらもシングル曲。朝よりは夜聴きたい。

なんて略すか問題。わたしは「春に」って略している。

作詞作曲はいきものがかり水野良樹氏。集牧おめでとうございます。
ひっさしぶりにいきものメールマガジンが届いてそういや登録してたなあなどと。

わたしは花粉症なのできっと春に愛されていない。悲しいなぁ。
春にはツアーが開始する。今回も最高の景色を観にいきてえな。

曲としてはイントロの入り方が気持ちいい。
テンポもいわゆるふんふんできる系でいい感じ。フェルマータ感。多分違う。

桜はまた この世界に
瑞々しく生まれていく なんどでも

ここテンション上がる。まさに大サビ前という感じが伝わってきて楽しくなってくる。

おしえて

作詞作曲: 関取花

おしえてといえばA to Z。違うか。そうか。

これはきっとライブで聴いたら泣いちゃう系の曲。

寝る前に聞いたらよく眠れそう。というか実際この曲聴きながら寝落ちしていた。

どうでもいいことばかりで笑いたい
誰かに甘えたいけど 誰でもってわけじゃない

何でも話せるような間柄の異性の友人、別に恋人じゃなくてもいいのだけれどそう言った人とグダグダと宅飲みする。
そんなシチュエーションがいいんだなあ。どうでもいい深夜番組を流し見ながら「この人は整形だ」とか「これ口パクじゃないの」とか。
肩に頭は預けるけれど、それ以上何か発展するというわけでもなく。ああ、酒が美味い。

甘いスカートも許して たまには少女に返らせて

この辺は確実にデビュー当時には歌わなかっただろう歌詞。25だとまだ少女って言っても笑って済ませてくれるだろうから。

どうやってどうやって不器用な光を見つけたの

ここに限らないが、2回目のどうやっての音程がなんか好き。
豊崎愛生さんの"CHEEKY"のサビ感。aikoの"ボーイフレンド"の最後のあなたがわたしの頬にの前のAh~って歌うとこ感。
伝わんないよなーでもそんな感じ。

満月の音

作詞作曲: 真島昌利

めっっっちゃ伸びやか。聴きながら散歩したい。これとスタッカートヘビロテしながら。

作詞作曲はザ・クロマニヨンズ真島昌利氏。クロマニヨンズも詳しくない。

白いはウサギ ウサギは はねる

さよなら三角またきて四角。光るはオヤジのハゲ頭。

何にもなくて 満たされてる
満月の音 清らかにして

夢を追いかけて新天地で新生活を始めた風景がなんとなく見える。
静かな夜に無音という音が満月から凛と響いているような。酒入ってるので自分でも何言ってるかわかってないよ。

ライブで聞いたら寝ちゃうんじゃねえかなあ。癒し空間。

ゆうのそら

作詞: ENA☆
作曲: ハルナ

立て続けにゆったりめ曲。好きな人しかライブに呼びづらくなるから布教が難しいんだこれが。

古い本のページをめくるたびに
懐かしい香りも過ぎてく

これ、割と経験あることで、例えばわたしの場合は"キン肉マン二世"の漫画を読むと中学の時を思い出すし、"都会のトム&ソーヤ"を読むと小学生の時に仲の良かった友人を思い出す。
これが誰かにオススメされて買った本とかならその思い出も一層強いわけで、本には内容の外側にも記憶が散らばっている。読書は心の栄養補給。

離れていても忘れないでね
違うそらのした
あなたが幸せであるように
ゆうのそらを見上げながら
あなたのため願った どうか今も笑っていてね
あなたのそら祈った
ありがとう

これ想っている側の考えで、大概想われている側というのはここまで深く考えていない。
振られた側はこういうことを考えているかもしれないが振った側はもう気持ちを切り替えている。俺は詳しいんだ。

いっけなーいちょっと思うところが☆
純粋に夢を追うために離れたのかもしれない。あなたは満月の音を聞いている頃だろうか。

昔のアルバムを開きながら聴きたい曲。

Ready to go

作詞: 花澤香菜
作曲: 佐橋佳幸

エンディング感。エンドロールに被せて流れてきそう。あるいはラジオのED曲。

作詞作曲は"Tact"と同じ。

今日だけのメロディー
口ずさんで走ろう

即興で考えながら走るのは厳しくない…?歩くならまだしも。
ジグザグ過ぎてレイテンシーが鳴ればメロディーになるのか。なるほどなあ。

神様の言う通り
何をしていても 不安で安心

どれにしようかな天の神様の言う通り、は英語では"eeny, meeny, miny, moe"となる。
25スピリッツ…!! 本人が意識しているかは定かではないが。

何にでもなれるのに
色んなことを手放すのは
やめにしたいから

輝く未来を抱きしめて!!!!

でかけよう
初めて私が決めたところへ

券売機の一番右の一番高い切符が行く先に言ってみたい願望がある。
ワクワク感がものすごい。

未来へ続くささやかな
旅にでかけよう

未来に向かってあるいていこう、とそういうわけか。考え過ぎかもしれない。
でも未来なんて見えないわけだから結局今過ごしているのも見方を変えればささやかな旅ということになるのでは。

きっとアンコール後の最終曲になるんじゃないかなーって。

若者のすべて

作詞作曲: 志村正彦

www.youtube.com

フジファブリックのカバー。 以前ライブでもカバーしていた。

まごうことなき名曲。CMで聞いたことがある人も多いはず。

原曲はアマプラ会員なら無料で聴けるのでぜひ。
うん。やっぱり…原曲が…好きかな…。

会ったら言えるかな

会えた試しも言えた試しもない。小心者ぉ…。

この曲については語り尽くされているような気がするから特に言葉が浮かんでこない。
あえて言葉を尽くす必要性がない、というのもなのかもしれない。

Trace

作詞: 岩里祐穂
作曲: mito

"Blue Avenue"に収録されていた曲のアコースティックバージョン。

ライブでたくさん聴いたなぁ…。
個人的には特別思い入れがある曲ではないため「いい曲だなー」で終わってしまう。

おわりに

以上、全曲レビューでした。我ながらただの備忘録感がすごい。

今度のツアーが終わった時に見返してみて、どれくらい評価が変わったかを楽しむのもまた一興ですね。

今のところの通して聴いた感想としては「前半がとんでもない」でした。後半は好きだけれど前半に比べたらまあって感じ。

2019/2/25には花澤香菜さんは30歳になり、当日にはバースデイライブもある。

www.hanazawakana-music.net

チケット一般販売もされているのでまだ間に合う。
癒されたい方はぜひ。

ではまた。

【C#】 CSVをDictionaryのListとして読み込む with 黒魔術

うぃろぅです。

vviilloovv.hatenablog.com

前回の記事の関連です。
そもそもDataTableなんて使わずともDictionary型のListにしてしまえばいいのではないか、と考えたので書いておきます。

で、書いてたらなんか楽しくなってきたので黒魔術コードが生成されました。
せっかくなので残しておこうという趣旨。

何がしたいか

ヘッダーつきのCSVファイルを読み込んでListとして返却したい

いよいよCsvHelperに頼ればいいって?私もそう思う。

車輪の再発明から得られる知見もあるはず。というかただコード書きたいだけ。

まずは素直に書いてみる

今回もTextFieldParserを利用していく。
CSVの先頭行にヘッダーがあるとする。

以下ソース。using System.ほげほげはよしなに書いてください…。

private static List<Dictionary<string, string>> CsvToList(string path)
{
  // お約束
  var parser = new TextFieldParser(path, Encoding.GetEncoding("Shift-JIS"));
  {
    TextFieldType = FieldType.Delimited,
    Delimiters = new string[] { "," }
  };

  // 読み込み
  var rows = new List<string[]>();
  while (!parser.EndOfData)
  {
    rows.Add(parser.ReadFields());
  }

  // 列名設定
  var header = new List<string>();
  foreach(var head in rows.First())
  {
    header.Add(head);
  }

  // 行追加
  var dicList = new List<Dictionary<string, string>>();
  foreach(var row in rows.Skip(1))
  {
    var dic = new Dictionary<string, string>();
    foreach(var i in Enumerable.Range(0, row.Length))
    {
      dic.add(header[i], row[i]);
    }
    dicList.Add(dic);
  }

  return dicList;
}

こんな感じ? 若干面倒に見えるのは

foreach(var i in Enumerable.Range(0, row.Length))
{
  dic.Add(header[i], row[i]);
}

の箇所だろうか。rowsのループ回数は行数なので、行数分のDictionaryを生成しているのだが、例えば

name,age,address
alice,17,jp
bob,20,us
charlie,19,uk

こんなCSVがあったとして、

ヘッダー(header) 要素(row) 添え字[i]
name alice 0
age 17 1
address jp 2
ヘッダー(header) 要素(row) 添え字[i]
name bob 0
age 20 1
address us 2

イメージ的にはこう順番に追加している。

2要素を同時に回す

dicの名前がセンスない。できるだけ脳のワーキングメモリは減らしたい。

添え字を使って回さない方法を考えたい。
添え字使うのってなんかもっさりしてるイメージない??ないか。そうか。

Zipメソッドを使えば対処できそう。なのでやってみる。

var dicList = new List<Dictionary<string, string>>();
foreach(var row in rows.Skip(1))
{
  dicList.Add(header.Zip(row, (head, data) =>
    new KeyValuePair<string, string>(head, data))
    .ToDictionary(keyVal => keyVal.Key, keyVal => keyVal.Value));
}

こんな感じ?
値がnullになる可能性がある場合はkeyVal.Value ?? ""とかでいけるんじゃないかな。

(1つめの要素).Zip((一緒に回したい要素), (一緒に回した値に対して行いたい処理))が書き方。
今回はDictionary型に変換したかったためKeyValuePairを使った。

もっといいやり方がありそうな気配しかしないので知っている方はコメントお願いします…。

もう少し短くしてみる

可読性的にはさっきのがギリギリな気がする。

でもdicListって名前がイケてない。それっぽい名前をつければそれでいいと思います

return rows
  .Skip(1)
  .Aggregate(new List<Dictionary<string, string>>(), (list, row) =>
  {
    list.Add(header.Zip(row, (head, item) =>
      new KeyValuePair<string, string>(head, item))
      .ToDictionary(kv => kv.Key, kv => kv.Value ?? ""));
    return list;
  });

これでいけるはず!!なんと1行。

  1. ヘッダーと要素をKeyValuePairとして1要素に集約
  2. KeyValuePairDictionaryに変換
  3. 変換したDictionaryListに追加
  4. 行数分(ヘッダー除く)畳み込み演算
  5. 演算した結果を返却

の順で処理が走っている。

試しに改行しないで書いてみると

return rows.Skip(1).Aggregate(new List<Dictionary<string, string>>(), (list, row) =>{list.Add(header.Zip(row, (head, item) =>new KeyValuePair<string, string>(head, item)).ToDictionary(kv => kv.Key, kv => kv.Value ?? ""));return list;});

こうなる。空白入れて236文字。Cobol的にはエラー3回分くらい。へへ。

ここまで書いてAggregate使う必要ないのではということに気がついた。

改良案。

return rows
  .Skip(1)
  .Select(row =>
    new Dictionary<string, string>(
      header
        .Zip(row, (head, item) =>
          new KeyValuePair<string, string>(head, item))
        .ToDictionary(kv => kv.Key, kv => kv.Value ?? ""))
  .ToList();

これだ(?)。

return rows.Skip(1).Select(row => new Dictionary<string, string>(header.Zip(row, (head, item) => new KeyValuePair<string, string>(head, item)).ToDictionary(kv => kv.Key, kv => kv.Value ?? "")).ToList();

空白入れて202文字。圧倒的エコ。

ちなみにデバッガー動かして確認したらちゃんと同じ中身になっていた。逆になぜうまくいってしまったのか。

†黒魔術完成†

順番に読んでいけば難しい要素なんてほとんどないのに書いていくうちに膨れ上がる。

こうして黒魔術は世に解き放たれていくのであった。

まあこれくらいのコードならよくあることでしょう。別にレビューしてもらうわけでもなし、楽しんだもん勝ちということでひとつ。

ではまた。

【C#】 CSVをDataTableとして読み込む

うぃろぅです。

vviilloovv.hatenablog.com

昨日の記事関連。
多分別の場所で使う機会はないというかCsvHelperを使えばいいじゃないかっていう気がしますが、記録として残しておきます。

目的

CSVファイルを読み込んでDataTable型として返却する

そもそもDBで用意していてほしい。

TextFieldParserを使えば簡単にできそうなのでそれを使う。

以下サンプル。

using Microsoft.VisualBasic.FileIO;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using static MergeCsv.Constants;

public static DataTable LoadCsvToDataTable(string path)
{
  var parser = new TextFieldParser(path, Encoding.GetEncoding("Shift-JIS"))
  {
    TextFieldType = FieldType.Delimited,
    Delimiters = new string[] { "," }
  }

  // 全行読み込み
  var rows = new List<string[]>();
  while(!parser.EndOfData)
  {
    rows.add(parser.ReadFields());
  }

  // 列設定
  var table = new DataTable();
  table.Columns.AddRange(rows.First().Select(s => new DataColumn(s)).ToArray());

  // 行追加
  foreach(var row in rows.Skip(1))
  {
    table.Rows.Add(row);
  }

  return table;
}

列名に同名のものがない想定。同名の列があった場合はDistinct().Select(~)という感じでいける。

そもそも同名の列がある時点でDBとしてはバグ?私もそう思います。でも実際にあったんだもの。なぜ。

簡単だけど以上。これぞlogって感じがしてきていいのでは?

ではまた。

【C#】 CSVのヘッダーだけ読み込んで出力する

うぃろぅです。

C#の新しい案件を進めているのはいいものの、どことなーくレガシーな気配が漂っている現状です。

まぁ嘆いていても始まらないので業務をこなすわけですが、その際に「あーこれしないとな、でも手作業だと面倒だからツール作ろう」と作った備忘録。

何がしたいか

date,time,foo,bar,baz
2019/2/25,00:00,1,2,3
2019/2/25,00:05,4,5,6
2019/2/25,00:10,7,8,9
  .
  .
  .

上記のようなCSVファイルがあるとして、これを

date
time
foo
bar
baz

こうしたい。なんて簡単な。

何でこんなことをしたくなったかというと現新比較がしたかったから。

  • 現行フォーマットで出力されているCSVがある
    (dateTime,hoge,hugaみたいな感じで結構違う)
  • 新フォーマットで出力されるように変更する
  • 現行フォーマットのCSVVBAで取り込んで処理を行っているため、新フォーマットだと動かない
  • VBAは10年くらい前に当時の作業者が片手間で作ったため読み解くのにコストがかかる
  • よって新フォーマットのCSVを現行フォーマットに変換したい

みたいな流れ。その際に変換リストの上から順番に出力されるようにしたら順番が違っている。
なのでWinMergeのようなDiffソフトで比較して修正するのが手っ取り早いよね、というワケ。

そもそもツールが動かない場合に頑張って解析しなきゃいけないとか、もう使わないファイルもあるけれどファイル名がないとエラーが出るからダミーファイルに置き換えるとか、もうそれ新フォーマット取り込む新しいツール作成した方がいいのでは、なんて突っ込みは野暮というもの。予算が悪いよ予算が。

ここ1ヶ月くらいでやったことは、

  • どの項目が現新で対応しているかのマッピング
  • マッピング結果をXMLファイルで作成
  • 新フォーマットのCSVを取り込み現行フォーマットに変換して出力するツール作成

ってところ。DBは使わないらしい。うーんレガシー。まあ管理コストかからないからこれはこれでありか。…いや、ありか??

ちなみにこのCSVファイル、150種類くらいある。XMLファイル作るのめっちゃ大変だった。

閑話休題。以下ソース。

using System.Text;
using System.IO;
using Microsoft.VisualBasic.FileIO;

static void Main(string[] args)
{
  // Shift-JISで出力されるので合わせる
  var sJis = Encoding.GetEncoding("Shift-JIS");

  var path = @"C:\Users\sample\csv";
  var csvs = Directory.GetFiles(path);

  // 読み込んだファイル数分ループ
  foreach (var csv in csvs)
  {
    // CSV読み込み
    var parser = new TextFieldParser(csv, sJis))
    {
      TextFieldType = FieldType.Delimited,
      Delimiters = new string[] { "," }
    };

    // ヘッダー読み込み
    var heads = parser.ReadFields();

    // 出力先設定
    var outPath = Path.Combine(
      path, "header", Path.GetFileName(csv));

    // 出力
    using (var sw = new StreamWriter(outPath, false, sJis))
    {
      foreach(var head in heads)
      {
        sw.WriteLine(head);
      }
    }
  }
}

かんたーん!

CSV読み込みにはTextFieldParserを利用。
Microsoft.VisualBasicを参照に追加する必要があるためそこだけ注意。

CSVの格納フォルダを決め打ちしているが、configファイルから読み込むようにすればリビルド不要。

System.Configuration.ConfigurationManager.AppSettings["inputCsvPath"];みたいな感じか。

最適化とか全然していないけれど、これで動きそうだしいいかと。
サブ作業に時間かけてもしょうがないし。将来の自分へのメモ。
役に立つかは知らない。多分立たないかなぁ。

ではまた。