FC2ブログ
2018 09123456789101112131415161718192021222324252627282930312018 11
「H&Sの実験棟」は年中無休です入館は無料ですのでお気軽にどうぞ。
No. 426

Suicaの使用履歴ビュアを作ってみました

前回は「プロデル」に有る Produire.FeliCa.dll を簡単に使ってみました。
その時に FeliCa 関係のプログラムが容易に作れそうな感触を得たので、
今回は「プロデル」で Suica の使用履歴ビュアを作ってみました。

Suica の使用履歴ビュアも公式ブログにサンプルが有るので作り易いです。
サンプルには Produire.FeliCa.dll を簡単に使う為の補助プログラムも有るので、
非接触型のICカードを使う特殊なプログラムであっても難しい部分は無いです。
只、今回は「プロデル」の配列の使い方を理解するのに時間が掛かりました。

レポート用

公式のサンプル プログラムを土台にして写真の様なものを作りました。
作り始めてから Suica のデータには利用額が無い事に気付きました。
金額関係のデータとしては残額しか記録されていないようです。
残額も必要ですがその都度の利用額も知りたいところです。

前回の残額から今回利用後の残額を引いた差額が今回の利用額です。
一時的に前回の残額を記憶して置けば簡単に計算できそうですが甘い考えでした。
Suica のデータは新しいものから順に読みだされるようです。
今回のデータを処理している時には未だ前回のデータは読んでいません。
仕方が無いので残額だけを先読みして配列に入れる事で対応しました。

また、Suica のデータはテキストで記録されている訳では無いので、
日付や路線と駅名等もそのままでは意味不明です。
日付に関しては公式の補助プログラムで処理されるので一応成形されています。
只、意味のない時刻データが付いてくるので後半はカットして使用しています。

路線と駅はコードで記録されていますが公式に対応表が有るので、
それとリンクさせれば簡単に引く事ができます。
ただし、サンプルでは路線と駅だけでリンクさせていたので、
間違った路線・駅を引いてしまう現象が発生していました。
これは地区コード、路線コード、駅コードからリンクコードを作り、
ユニークなコードにする事で解決しました。

更に何を利用したのかも知りたいところなので対応してみました。
このデータは多くの種別に分類されていますが今回は大雑把な表示にしました。
利用額がマイナスになっている処はチャージです。
未だ実装予定の機能が有るので完成していませんが使えるので公開します。

この SuicaViewer を作るために FeliCaライブラリ.rdr も少し手を加えました。
このプログラムは私が非接触ICカードリーダ/ライタを持っておらず、
「プロデル」のライブラリやサンプル プログラムに出会っていなければ、
決して作ろうとは思わなかった筈で偶然の賜物と言えるかも知れません。

掲載したファイルは成果保管室からダウンロード可能です。
路線・駅名照合用の CSV ファイルは公式ブログからダウンロードして下さい。
ソースは試食実験室にて公開しています。
[No. 426] 2017/10/20(金) その他のHandS track back(0) comment(0)

コメントの投稿















| ホーム |
Page Top↑