タグ別アーカイブ: ltsv

DynamicLTSV:インデクサによるアクセスをサポート

NuGet Gallery | DynamicLTSV 1.4.0

masaru-b-cl/DynamicLTSV · GitHub

 

これまで、DynamicLTSVでは、動的にラベル名をプロパティとしてアクセスするようにしてきました。

しかし、この実装には一つ問題があります。それは”-“などの演算子を含むラベルが使用できないことでした。

この問題に対応するため、次のようにインデクサで値の設定、取得ができるようにしました。これで、他の言語でハッシュテーブルを用いて実装しているものと、ほぼ同じAPIを提供できることになります。

 

Console.WriteLine(line["bar"]);  // baz
ltsv["bar"] = "baz";

 

ますます便利になったDynamicLTSV、ぜひお使いください。

DynamicLTSV:プロパティ構文で動的にLTSVの項目追加可能に

masaru-b-cl/DynamicLTSV · GitHub

NuGet Gallery | DynamicLTSV 1.3.2

 

LTSVをパースして動的にプロパティとして取得できるなら、逆に動的にプロパティとして設定できてもいいじゃない?という発想から次のような感じで設定できるようにしました。

 

 

DynamicLTSVの進化も、ひとまずこんなもので終わりかなという気がしています。

これ以上やると必要以上に複雑になっちゃいそうですし。

DynamicLTSV:ルート名前空間をLTSVに変更

masaru-b-cl/DynamicLTSV · GitHub

NuGet Gallery | DynamicLTSV 1.2.0

 

DynamicLTSVはこれまでSystem.Text名前空間に定義していましたが、.NET Frameworkに存在する名前空間を拡張することにより、DynamicLTSVを使わないソースでも有効になってしまいます。

これを防ぐため、いまさらですがルート名前空間を変更し、”LTSV”としました。

 

DynamicLTSVを使用する際は、以下のusingを指定するようにしてください。

 

using LTSV;

 

DynamicLTSVもひとまずこれで一区切りにしようと思います。

DynamicLTSV:匿名型オブジェクトからLTSV作成

masaru-b-cl/DynamicLTSV · GitHub

NuGet Gallery | DynamicLTSV 1.1.0

 

匿名型などのオブジェクトから、簡単にLTSVを作成するための拡張メソッド、ToLTSVString()を追加しました。

次のように実行できます。

 

 

LINQと組み合わせれば、簡単に思い通りのLTSVが作れますね!

DynamicLTSV:LTSVなアクセスログをLINQで処理

DynamicLTSV:LTSVをパースし、動的にアクセス&動的にLTSV生成 « be free

で作成したDynamicLTSVですが、LINQとの相性もばっちりです。

 

こんなLTSVなアクセスログファイルがあったとします。

 

 

こいつをこんな感じでメソッドチェーンで処理できます。例はhostがローカルネットワークのもののUAを抽出しています。

 

 

image

 

LINQでパイプライン処理も楽々ですなぁ。

DynamicLTSV:LTSVをパースし、動的にアクセス&動的にLTSV生成

【今北産業】3分で分かるLTSV業界のまとめ【LTSV】 – naoyaのはてなダイアリー

 

なんかLTSVが流行ってるようなので、C#で参戦!

 

DynamicLTSV

masaru-b-cl/DynamicLTSV · GitHub

C#でスキーマレスなデータ相手にすると言ったら、当然dynamicですよね。DynamicLTSVを使うと、お手軽にこんな感じでLTSVデータのパース、アクセス、並びに生成ができます。

 

 

実装は?

中身ですが「neue cc – dynamicとQueryString、或いは無限に不確定なオプション引数について」ほぼそのままです。staticメソッドでパースするようにしたくらいですね。

ライセンスはNYSLにしてあります。煮るなり焼くなりお好きにどうぞ。たとえば、「System.Text名前空間を汚していて許せない!」という人は、System.Text.Ltsv名前空間にでもなんにでも変えてくださいませませ。

とりあえず、いろいろ適当ですので、こんな風にしたらよくなるよとかあったら是非Pull Requestなりコメントなり、なんなりと。

 

まとめ

いやー、C#ってとってもゆるふわでLightweightなもんですねぇ。