LCField の Compare メソッド

このメソッドは、2 つのフィールドのデータ値を比較し、その関係を返します。

定義位置

LCField

構文

result = thisField.Compare (thisIndex, baseField, baseIndex, valueCount, compareFlags)

パラメータ

パラメータはすべて必須です。

パラメータ

説明

thisIndex

Long、1 以上。thisField と比較する最初の値を識別するインデックスです。

baseField

LCField。比較の基準となるフィールドです。

baseIndex

Long、1 以上。baseField の最初の基準値を識別するインデックスです。

valueCount

Long。比較するフィールド値の数です。各フィールドの指定したインデックスから、すべてのフィールドが比較されるまで、または不一致が検出されるまで、ValueCount 個の値が続けて比較されます。

compareFlags

Long。以下の値のうち 0 個以上の論理和です。

 

LCCOMPAREF_NO_ZONE -- 日時を比較するときに、タイムゾーンおよびサマータイム情報を考慮しません。

 

LCCOMPAREF _SECOND -- 日時を比較するときに、秒の端数を考慮しません。

 

LCCOMPAREF_FLOAT_PREC -- 浮動小数値は 10 桁のみ比較します。

 

この他に、次の複合フラグがあります。

LCCOMPAREF_LOW_PREC -- 精度を下げる LCCOMPAREF フラグをすべて合成したものです。

戻り値

説明

結果

Long。比較の結果 (以下のいずれか)。

 

結果 > 0 (正): 関数が thisField 内で検出した最初の不一致が、baseField 内の対応する値より大きい。日時フィールドの場合は、値が大きいほうが後の時間であることを示します。

 

結果 < 0 (負): 関数が thisField 内で検出した最初の不一致が、baseField 内の対応する値より小さい。

 

結果 = 0: thisField 内で比較された各値が、baseField 内の対応する値と等しい。

Option Public
Uselsx "*lsxlc"  
Sub Initialize
  Dim field1 As New LCField (LCTYPE_INT, 3)
  Dim field2 As New LCField (LCTYPE_INT, 2)
  Call field1.SetInt (1, 100)
  Call field1.SetInt (2, 300)
  Call field1.SetInt (3, 400)
  Call field2.SetInt (1, 300)
  Call field2.SetInt (2, 400)
  If (field1.Compare(2, field2, 1, 2, 0) <> 0) Then
    Print "the 2nd and 3rd values of field1 " & _
    "do not match the 1st and 2nd values of field2."
  Else
    Print "the 2nd and 3rd values of field1 " & _
    "match the 1st and 2nd values of field2."
  End If
End Sub

出力例

The 2nd and 3rd values of field1 match the 1st and 2nd values of field2.