データが次のように形成されているパイプ区切りのフラットファイルで、一意の名前と最後の出現を (データから) カウントする最も賢明な方法は何ですか?
Artist|YYYY-MM-DD|Location|\n
たとえば、データが次の場合(最後に改行がある場合):
The Band|2011-04-01|Club Bulc|
Le Artist|1999-12-24|Reindeer Row|
Soundmakers|2012-03-22|Pub Pizza|
The Band|2010-12-01|Someplace|
Soundmakers|2009-07-07|Faraway|
Soundmakers|2010-08-18|ShowEr|
望ましい形式は次のようになります。
Artist|Times listed|Latest year
フラットファイルをループして、次のデータを 2 番目のフラットファイルに取得するにはどうすればよいでしょうか。
Le Artist|1|1999|
Soundmakers|3|2012|
The Band|2|2011|
最初はとても簡単な仕事だと思っていましたが、少し難しいことがわかりました!
半分うまくいく実装が 1 つあります (一部の項目は 2 回書かれ、年が間違った行にあることもあります!)、これを達成するためのより良い方法があるかどうかを確認したいと思います。
これについては、OOP と手続き型の両方のアプローチを試しましたが、これまでのところ、手続き型でより良い結果が得られています。しかし、これは私の個人的な学習 (および使用) のためであるため、私にとって方法は実際には問題ではありません。
更新: ファイルのサイズは約 1 MB ですが、近い将来には 10 MB をはるかに下回ります。