2バイト文字の判別


雷丸  2002-11-21 23:16:44  No: 50687

前回は質問に答えていただきありがとうございました。
今回もお世話になりたいと思います。

今回はリストビューのカラムが押されたら、
リストビューに表示されているものをソートをしようとしています。
しかし英半角と全角が混在しているので、
どうやってソートをやったらいいのか見当もつきません。
一応私自身MSDNやネット検索で調べたのですが、見つかりませんでした。

2バイト文字を判別する関数はあるのでしょうか?
もし無いとしたらどのように判別したらよろしいでしょうか?

どうぞご助言お願いいたします。


雷丸  2002-11-22 01:38:10  No: 50688

失礼、環境を書き忘れてました。
Win2k, VC++6.0 MFCのダイアログベースで開発しております


YuO  2002-11-22 02:49:17  No: 50689

ソートの基準は何ですか?
普通はstrcmpでそのまま比較してしまいますが。


JUN2  2002-11-22 02:54:11  No: 50690

>2バイト文字を判別する関数

ソートはともかく全角チェックは
IsDBCSLeadByte()なんかどう?


雷丸  2002-11-22 18:27:47  No: 50691

ご返答ありがとうございます。
> YuO様
ファイルやフォルダ名を昇順に並べようとしています。
エクスプローラのような並び方になれば…と考えています。
strcmpには全角文字が入っても大丈夫なのでしょうか?
試してみます。

> JUN2様
なるほど、こういうのがあったのですね。

これから御二方の返答を参考に実際に組んでみたいと思います。


YuO  2002-11-22 20:10:48  No: 50692

エクスプローラって辞書順だからstrcmpではだめですね。
CompareString APIを使うといけるかと。


雷丸  2002-11-22 20:19:20  No: 50693

ご返答ありがとうございます!
> YuO様
おぉ、これはけそうですね〜。
これを使ってがんばってみたいと思います。
どれくらいかかるかわかりませんが結果報告いたします


ひろ  2002-11-26 23:42:40  No: 50694

CListViewのアイテムをソートするには
通常GetListCtrl()にてCListCtrlのポインタを取得し
SortItems関数によって行います。

http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_LVitemsort.html
ここにやり方が書いてありますので
参考にしてください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加