<Return[JKL]><Top>

lstrcmpi

Declare Function Api_lstrcmpi& Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1$, ByVal lpString2$)

Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long

文字列が同じであるかをチェック:大文字小文字を区別しない。

パラメータ
lpString1
    比較に使われる、NULL で終わる文字列へのポインタを指定する。
lpString2
    比較に使われる、NULL で終わる文字列へのポインタを指定する。
 

戻り値
    lpString1 パラメータが指す文字列が、lpString2 パラメータが指す文字列よりも小さい場合、負の値が返る。

    lpString1 パラメータが指す文字列が、lpString2 パラメータが指す文字列よりも大きい場合、正の値が返る。

    lpString1 パラメータが指す文字列が、lpString2 パラメータが指す文字列と等しい場合、0 が返る。

解説
    lstrcmpi 関数は 2 つの文字列を比較する際に、最初の文字と最初の文字、2 番目の文字と 2 番目の文字を比較し、一致しない文字が

    見つかるか、文字列の終わりに達するまで、以下同様に比較を続る。
    一致しない最初の文字が見つかった時点で、その文字の比較結果に基づいて、この関数は戻り値を決定する。

    たとえば、"abcz" と "abcdefg" を比較すると、z と d が違うので、この関数は "abcz" が "abcdefg" より大きいと判断する。
    この関数は、ユーザーがセットアップ時に選択した言語(ロケール)、またはコントロールパネルで選択した言語に基づいて、どちらの文字

    が大きいのか(または文字列が互いに等しいのか)判断する。

    どの言語(ロケール)も選択されていない場合、システムは既定の値を使って比較を行う。
    特定のロケールでは、lstrcmpi 関数を使うだけでは十分ではないことがある。このような場合、適切な比較を行うために、CompareString

    関数を使う。たとえば、日本語環境では、IGNORE_CASE、IGNORE_KANATYPE、IGNORE_WIDTH の各値を指定して

    CompareString 関数を呼び出すと、最も柔軟性の高いあいまい検索を行える。

    アジア以外のロケールでは、IGNORE_KANATYPE と IGNORE_WIDTH は無視されるので、あらゆるロケールでこれら 2 つの値を適用

    するようコーディングしておくと、実行時のロケールにかかわりなく、どの文化圏でも正しいと考えられる「あいまいな」並べ替えを行える。た

    だし、これらの値を指定するとパフォーマンスが低下するので、必要な場合にのみ指定するべきである。