2005年7月25日月曜日

ATLと正規表現

プログラミング系の話題をまとめて参照できるように、カテゴリー「プログラミング」を追加しました。今までは「パソコン・インターネット」に書いていたので、ぼちぼち修正していかないと…。

今日の課題はVC++のATLで正規表現を使用し、目的の文字列を取得する、ってこと。VC++7.0からは、標準でCAtlRegExpというクラスが用意されているので、それを使ってみることにしました。

まず、MSDNのサンプルに沿って作ると、全角文字が検索対象に含まれていた場合、ATLのヘッダーの中で例外(;´Д`) どうやら、マルチバイト文字を指定しないとダメらしい。と言うことで、CAtlRECharTraitsMBについて調査中…。

で、一通り調査完了しました。CAtlRECharTraitsMBはCAtlRegExpで使用する文字を指定するクラスのようで、単純に
CAtlRegExp<CAtlRECharTraitsMB> atlRegExp;
で使えました。その後、Parseなどで使用する文字列をreinterpret_cast<const unsigned char*>してやる必要がありますが…。

こんな感じで正規表現は大体終了。実際に動かしてみると…めっちゃ動作が重いヽ(`Д´)ノ これはマルチスレッドにしないと使い物にならないかも。
つД`)・゚・。・゚゚・*:.。..。.:*・゚

0 件のコメント:

コメントを投稿