SET EXACT コマンド

長さが異なる 2 つの文字列を比較する規則を指定します。

構文

  
SET EXACT ON | OFF  

引数

ON
式が文字と等しい文字に一致する必要があることを指定します。 式の末尾の空白は、比較では無視されます。 比較のために、2 つの式の短い方は、長い式の長さに合わせて空白で右側に埋め込まれます。

OFF
(既定値)。式を等価にするには、右側の式の末尾に達するまで、式が character の文字と一致する必要があることを指定します。

注釈

両方の文字列が同じ長さである場合、SET EXACT 設定は無効です。

文字列の比較

Visual FoxPro には、等価性をテストする 2 つの関係演算子があります。

= 演算子は、同じ型の 2 つの値の比較を実行します。 この演算子は、文字、数値、日付、および論理データの比較に適しています。

ただし、文字式を = 演算子と比較すると、結果が期待どおりではない可能性があります。 文字式は、左から右の文字の文字と比較され、式の 1 つが他方と等しくないまで、= 演算子の右側にある式の末尾に達するまで (SET EXACT OFF)、または両方の式の終わりに達するまで (SET EXACT ON) です。

== 演算子は、文字データの正確な比較が必要な場合に使用できます。 2 つの文字式を == 演算子と比較する場合、== 演算子の両側の式には、空白を含むまったく同じ文字が含まれている必要があります。 == を使用して文字列を比較する場合、SET EXACT 設定は無視されます。

次の表は、演算子と SET EXACT 設定の選択が比較にどのように影響するかを示しています。 (アンダースコアは空白を表します)。

比較 = EXACT OFF = EXACT ON == EXACT ON または OFF
"abc" = "abc" 一致する 一致する 一致する
"ab" = "abc" 一致なし。 一致なし。 一致なし。
"abc" = "ab" 一致する 一致なし。 一致なし。
"abc" = "ab_" 一致なし。 一致なし。 一致なし。
"ab" = "ab_" 一致なし。 一致する 一致なし。
"ab_" = "ab" 一致する 一致する 一致なし。
"" = "ab" 一致なし。 一致なし。 一致なし。
"ab" = "" 一致する 一致なし。 一致なし。
"__" = "" 一致する 一致する 一致なし。
"" = "___" 一致なし。 一致する 一致なし。
TRIM("___") = "" 一致する 一致する 一致する
"" = TRIM("___") 一致する 一致する 一致する

参照

SET ANSI コマンド