const unsigned char *Ptn
度々お世話になってます。VC++2010、MFC、ユニコードを使う設定で、ワイルドカードを用いたLike処理が使いたいです。
正規表現までは、望んでいません。
それで、過去ログを見てみましたが、まだ分かりませんでした。
◆ワイルドカードを用いた文字列検索
http://okwave.jp/qa/q287644.html を使いたいです。
一応、リンク先のソースコードを載せておきます。
_________________________________________________________________________________________________
int StrMatchMBS( const unsigned char *Ptn, const unsigned char *Str )
{
switch( *Ptn )
{
case '\0':
return (_mbsnextc(Str)=='\0');
case '*':
return StrMatchMBS( _mbsinc(Ptn), Str ) || (_mbsnextc(Str)!='\0') && StrMatchMBS( Ptn, _mbsinc(Str) );
case '?':
return (_mbsnextc(Str)!='\0') && StrMatchMBS( _mbsinc(Ptn), _mbsinc(Str) );
default:
return (_mbsnextc(Ptn)==_mbsnextc(Str)) && StrMatchMBS( _mbsinc(Ptn), _mbsinc(Str) );
}
}
_________________________________________________________________________________________________
int KeywordDlg::StrMatchMBS( const unsigned TCHAR *Ptn, const unsigned TCHAR *Str ){ としたところ、
エラー 4 error C2050: switch 式の結果は、整数値になりませんでした。
エラー 3 error C2065: 'Ptn' : 定義されていない識別子です。
・・・のエラーがでます。
_________________________________________________________________________________________________
int KeywordDlg::StrMatchMBS( const TCHAR *Ptn, const TCHAR *Str ){ としたところ
Ptn と Str の所で、赤い波線となり、
エラー 2 error C2664: '_mbsinc' : 1 番目の引数を 'const TCHAR *' から 'const unsigned char *' に変換できません。(新しい機能 ; ヘルプを参照)
_________________________________________________________________________________________________
↓この方の質問のままなのですが、具体的に どう書けばいいのか?分かりません。
◆UNICODE化のための書き換え
http://okwave.jp/qa/q6966243.html
_tcsrchr もどこで使えばいいのか分かりません。
ポインターの記述を完全に理解していないせいで、分からないのでしょうか?
すみませんが、もう少し、補足して頂くとうれしいですm(_ _)m