リストボックスなどで、ヘッダーをクリックしたときに
ソートを行いたいのですが、漢字などの日本語を日本語のあいおうえお順に
ソートする方法がわかりません。
できるだけ簡単な方法を知りたいです。
漢字の読みはどのようにして取得する予定ですか?
単純にstrcmp()やCString::Compare()の戻り値を
使うのはダメなんですか?
結果的に音読みのソートになってしまいますけど。
東京はとうきょう、北京はぺきんと読むことを何らかの方法で
教えておかないとどーしよーもないです。'読み'の並びを換えたいのですから。
読みでソートする場合の一番単純な方法は、よみがなと漢字をペアにした構造体なり
クラスなりを用意しておいてよみがなをキーにソートしておく方法だと思います。
επιστημηさんも言われているように、その漢字がどう読まれるのかはをきちんと
定義できないとソートは無理です。
逆に言うとデータ設計の段階でよみがなによるソートが必要であれば、よみがなをデータの
一部として入れておく事が必要になるという事です。
リストボックスのヘッダー???
リストビューのカラムのことかなぁ
さて、「できるだけ簡単な」なら、ター坊さんのおっしゃってるCString::Compare()の戻
り値の比較に一票です
Windowsのエクスプローラーのソートもこれでやってるんじゃないの???
と、いうことでWindowsのアプリなら許されませんかねぇ~
「読み」をデータとするには、それを入力する手間がありますからねぇ~
人名のDBなどで、読みをあわせて入力されるようなものでない限りはねぇ~
ソートしたいがために、読みの入力をさせるのはどうかと思います
結局は、何処までの結果を求めるかだと思うのですけれど。
うちださんやター坊さんが言われている内容で十分なのであれば、
よみがなの入力までは必要ないでしょうし、
ちゃんと漢字の読みでソートしたいのであれば、入力してもらうしかないと思います。
IMEの逆変換という手もあるでしょうけれど、これだとうまく行かないケースがあると思
うので
結局は何処までの結果を求めているのかという話に戻ってしまうと言うか。