📄 cs2_var.pas
字号:
end;
ptOr:
begin
if (not isIntegerType(V2)) and (not ISBooleanType(v2)) then
begin
Perform := False;
Exit;
end;
case v1^.VType of
CSV_UByte:
begin
v1^.CV_UByte := v1^.CV_UByte or GetInt(V2);
end;
CSV_SByte:
begin
v1^.CV_SByte := v1^.CV_SByte or GetInt(V2);
end;
CSV_UInt16:
begin
v1^.CV_UInt16 := v1^.CV_UInt16 or GetInt(V2);
end;
CSV_SInt16:
begin
v1^.CV_SInt16 := v1^.CV_SInt16 or GetInt(V2);
end;
CSV_UInt32:
begin
v1^.CV_UInt32 := v1^.CV_UInt32 or GetInt(V2);
end;
CSV_SInt32:
begin
v1^.CV_SInt32 := v1^.CV_SInt32 or GetInt(V2);
end;
CSV_Bool:
begin
v1^.CV_Bool := v1^.CV_Bool or GetBool(V2);
end;
else
Err := True;
end;
end;
ptXor:
begin
if (not isIntegerType(V2)) and (not ISBooleanType(v2)) then
begin
Perform := False;
Exit;
end;
case v1^.VType of
CSV_UByte:
begin
v1^.CV_UByte := v1^.CV_UByte xor GetInt(V2);
end;
CSV_SByte:
begin
v1^.CV_SByte := v1^.CV_SByte xor GetInt(V2);
end;
CSV_UInt16:
begin
v1^.CV_UInt16 := v1^.CV_UInt16 xor GetInt(V2);
end;
CSV_SInt16:
begin
v1^.CV_SInt16 := v1^.CV_SInt16 xor GetInt(V2);
end;
CSV_UInt32:
begin
v1^.CV_UInt32 := v1^.CV_UInt32 xor GetInt(V2);
end;
CSV_SInt32:
begin
v1^.CV_SInt32 := v1^.CV_SInt32 xor GetInt(V2);
end;
CSV_Bool:
begin
v1^.CV_Bool := v1^.CV_Bool xor GetBool(V2);
end;
else
Err := True;
end;
end;
ptShr:
begin
if not isIntegerType(V2) then
begin
Perform := True;
Exit;
end;
case v1^.VType of
CSV_UByte:
begin
v1^.CV_UByte := v1^.CV_UByte shr GetInt(V2);
end;
CSV_SByte:
begin
v1^.CV_SByte := v1^.CV_SByte shr GetInt(V2);
end;
CSV_UInt16:
begin
v1^.CV_UInt16 := v1^.CV_UInt16 shr GetInt(V2);
end;
CSV_SInt16:
begin
v1^.CV_SInt16 := v1^.CV_SInt16 shr GetInt(V2);
end;
CSV_UInt32:
begin
v1^.CV_UInt32 := v1^.CV_UInt32 shr GetInt(V2);
end;
CSV_SInt32:
begin
v1^.CV_SInt32 := v1^.CV_SInt32 shr GetInt(V2);
end;
else
Err := True;
end;
end;
ptShl:
begin
if not isIntegerType(V2) then
begin
Perform := True;
Exit;
end;
case v1^.VType of
CSV_UByte:
begin
v1^.CV_UByte := v1^.CV_UByte shl GetInt(V2);
end;
CSV_SByte:
begin
v1^.CV_SByte := v1^.CV_SByte shl GetInt(V2);
end;
CSV_UInt16:
begin
v1^.CV_UInt16 := v1^.CV_UInt16 shl GetInt(V2);
end;
CSV_SInt16:
begin
v1^.CV_SInt16 := v1^.CV_SInt16 shl GetInt(V2);
end;
CSV_UInt32:
begin
v1^.CV_UInt32 := v1^.CV_UInt32 shl GetInt(V2);
end;
CSV_SInt32:
begin
v1^.CV_SInt32 := v1^.CV_SInt32 shl GetInt(V2);
end;
else
Err := True;
end;
end;
PtGreater: case V1^.VType of
CSV_UByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_UByte > GetReal(v2))
else
MakeItBool(v1^.Cv_UByte > GetInt(V2));
CSV_SByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_SByte > GetReal(v2))
else
MakeItBool(v1^.Cv_SByte > GetInt(V2));
CSV_Char: if v2^.VType = CSV_Char then
MakeItBool(V1^.Cv_Char > v2^.CV_Char)
else
Err := True;
CSV_UInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint16 > GetReal(v2))
else
MakeItBool(v1^.CV_UInt16 > GetInt(V2));
CSV_SInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint16 > GetReal(v2))
else
MakeItBool(v1^.CV_SInt16 > GetInt(V2));
CSV_UInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint32 > GetReal(v2))
else
MakeItBool(v1^.CV_UInt32 > GetInt(V2));
CSV_SInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint32 > GetReal(v2))
else
MakeItBool(v1^.CV_SInt32 > GetInt(V2));
CSV_Real: MakeItBool(V1^.Cv_Real > GetReal(v2));
CSV_Single: MakeItBool(V1^.Cv_Single > GetReal(v2));
CSV_Double: MakeItBool(V1^.Cv_Double > GetReal(v2));
CSV_Extended: MakeItBool(V1^.Cv_Extended > GetReal(v2));
CSV_Comp: MakeItBool(V1^.Cv_Comp > GetReal(v2));
CSV_Bool: MakeItBool(V1^.Cv_Bool > V2^.Cv_Bool);
CSV_String: MakeItBool(V1^.Cv_Str > V2^.Cv_Str);
else Err := True;
end; {case item}
PtLess: case V1^.VType of
CSV_UByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_UByte < GetReal(v2))
else
MakeItBool(v1^.Cv_UByte < GetInt(V2));
CSV_SByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_SByte < GetReal(v2))
else
MakeItBool(v1^.Cv_SByte < GetInt(V2));
CSV_Char: if v2^.VType = CSV_Char then
MakeItBool(V1^.Cv_Char < v2^.CV_Char)
else
Err := True;
CSV_UInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint16 < GetReal(v2))
else
MakeItBool(v1^.CV_UInt16 < GetInt(V2));
CSV_SInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint16 < GetReal(v2))
else
MakeItBool(v1^.CV_SInt16 < GetInt(V2));
CSV_UInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint32 < GetReal(v2))
else
MakeItBool(v1^.CV_UInt32 < GetInt(V2));
CSV_SInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint32 < GetReal(v2))
else
MakeItBool(v1^.CV_SInt32 < GetInt(V2));
CSV_Real: MakeItBool(V1^.Cv_Real < GetReal(v2));
CSV_Single: MakeItBool(V1^.Cv_Single < GetReal(v2));
CSV_Double: MakeItBool(V1^.Cv_Double < GetReal(v2));
CSV_Extended: MakeItBool(V1^.Cv_Extended < GetReal(v2));
CSV_Comp: MakeItBool(V1^.Cv_Comp < GetReal(v2));
CSV_Bool: MakeItBool(V1^.Cv_Bool < V2^.Cv_Bool);
CSV_String: MakeItBool(V1^.Cv_Str < V2^.Cv_Str);
else Err := True;
end; {case item}
PtGreaterEqual: case V1^.VType of
CSV_UByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_UByte >= GetReal(v2))
else
MakeItBool(v1^.Cv_UByte >= GetInt(V2));
CSV_SByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_SByte >= GetReal(v2))
else
MakeItBool(v1^.Cv_SByte >= GetInt(V2));
CSV_Char: if v2^.VType = CSV_Char then
MakeItBool(V1^.Cv_Char >= v2^.CV_Char)
else
Err := True;
CSV_UInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint16 >= GetReal(v2))
else
MakeItBool(v1^.CV_UInt16 >= GetInt(V2));
CSV_SInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint16 >= GetReal(v2))
else
MakeItBool(v1^.CV_SInt16 >= GetInt(V2));
CSV_UInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint32 >= GetReal(v2))
else
MakeItBool(v1^.CV_UInt32 >= GetInt(V2));
CSV_SInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint32 >= GetReal(v2))
else
MakeItBool(v1^.CV_SInt32 >= GetInt(V2));
CSV_Real: MakeItBool(V1^.Cv_Real >= GetReal(v2));
CSV_Single: MakeItBool(V1^.Cv_Single >= GetReal(v2));
CSV_Double: MakeItBool(V1^.Cv_Double >= GetReal(v2));
CSV_Extended: MakeItBool(V1^.Cv_Extended >= GetReal(v2));
CSV_Comp: MakeItBool(V1^.Cv_Comp >= GetReal(v2));
CSV_Bool: MakeItBool(V1^.Cv_Bool >= V2^.Cv_Bool);
CSV_String: MakeItBool(V1^.Cv_Str >= V2^.Cv_Str);
else Err := True;
end; {case item}
PtLessEqual: case V1^.VType of
CSV_UByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_UByte <= GetReal(v2))
else
MakeItBool(v1^.Cv_UByte <= GetInt(V2));
CSV_SByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_SByte <= GetReal(v2))
else
MakeItBool(v1^.Cv_SByte <= GetInt(V2));
CSV_Char: if v2^.VType = CSV_Char then
MakeItBool(V1^.Cv_Char <= v2^.CV_Char)
else
Err := True;
CSV_UInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint16 <= GetReal(v2))
else
MakeItBool(v1^.CV_UInt16 <= GetInt(V2));
CSV_SInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint16 <= GetReal(v2))
else
MakeItBool(v1^.CV_SInt16 <= GetInt(V2));
CSV_UInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint32 <= GetReal(v2))
else
MakeItBool(v1^.CV_UInt32 <= GetInt(V2));
CSV_SInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint32 <= GetReal(v2))
else
MakeItBool(v1^.CV_SInt32 <= GetInt(V2));
CSV_Real: MakeItBool(V1^.Cv_Real <= GetReal(v2));
CSV_Single: MakeItBool(V1^.Cv_Single <= GetReal(v2));
CSV_Double: MakeItBool(V1^.Cv_Double <= GetReal(v2));
CSV_Extended: MakeItBool(V1^.Cv_Extended <= GetReal(v2));
CSV_Comp: MakeItBool(V1^.Cv_Comp <= GetReal(v2));
CSV_Bool: MakeItBool(V1^.Cv_Bool <= V2^.Cv_Bool);
CSV_String: MakeItBool(V1^.Cv_Str <= V2^.Cv_Str);
else Err := True;
end; {case item}
PtEqual: case V1^.VType of
CSV_UByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_UByte = GetReal(v2))
else
MakeItBool(v1^.Cv_UByte = GetInt(V2));
CSV_SByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_SByte = GetReal(v2))
else
MakeItBool(v1^.Cv_SByte = GetInt(V2));
CSV_Char: if v2^.VType = CSV_Char then
MakeItBool(V1^.Cv_Char = v2^.CV_Char)
else
Err := True;
CSV_UInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint16 = GetReal(v2))
else
MakeItBool(v1^.CV_UInt16 = GetInt(V2));
CSV_SInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint16 = GetReal(v2))
else
MakeItBool(v1^.CV_SInt16 = GetInt(V2));
CSV_UInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint32 = GetReal(v2))
else
MakeItBool(v1^.CV_UInt32 = GetInt(V2));
CSV_SInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint32 = GetReal(v2))
else
MakeItBool(v1^.CV_SInt32 = GetInt(V2));
CSV_Real: MakeItBool(V1^.Cv_Real = GetReal(v2));
CSV_Single: MakeItBool(V1^.Cv_Single = GetReal(v2));
CSV_Double: MakeItBool(V1^.Cv_Double = GetReal(v2));
CSV_Extended: MakeItBool(V1^.Cv_Extended = GetReal(v2));
CSV_Comp: MakeItBool(V1^.Cv_Comp = GetReal(v2));
CSV_Bool: MakeItBool(V1^.Cv_Bool = V2^.Cv_Bool);
CSV_String: MakeItBool(v1^.Cv_Str = v2^.Cv_Str)
else
Err := True;
end; {case item}
PtNotEqual: case V1^.VType of
CSV_UByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_UByte <> GetReal(v2))
else
MakeItBool(v1^.Cv_UByte <> GetInt(V2));
CSV_SByte: if IsRealType(v2) then
MakeItBool(V1^.Cv_SByte <> GetReal(v2))
else
MakeItBool(v1^.Cv_SByte <> GetInt(V2));
CSV_Char: if v2^.VType = CSV_Char then
MakeItBool(V1^.Cv_Char <> v2^.CV_Char)
else
Err := True;
CSV_UInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint16 <> GetReal(v2))
else
MakeItBool(v1^.CV_UInt16 <> GetInt(V2));
CSV_SInt16: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint16 <> GetReal(v2))
else
MakeItBool(v1^.CV_SInt16 <> GetInt(V2));
CSV_UInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Uint32 <> GetReal(v2))
else
MakeItBool(v1^.CV_UInt32 <> GetInt(V2));
CSV_SInt32: if IsRealType(v2) then
MakeItBool(V1^.Cv_Sint32 <> GetReal(v2))
else
MakeItBool(v1^.CV_SInt32 <> GetInt(V2));
CSV_Real: MakeItBool(V1^.Cv_Real <> GetReal(v2));
CSV_Single: MakeItBool(V1^.Cv_Single <> GetReal(v2));
CSV_Double: MakeItBool(V1^.Cv_Double <> GetReal(v2));
CSV_Extended: MakeItBool(V1^.Cv_Extended <> GetReal(v2));
CSV_Comp: MakeItBool(V1^.Cv_Comp <> GetReal(v2));
CSV_Bool: MakeItBool(V1^.Cv_Bool <> V2^.Cv_Bool);
CSV_String: MakeItBool(v1^.Cv_Str <> v2^.Cv_Str)
else
Err := True;
end; {case item}
end;
PerForm := not Err;
end;
{$IFDEF DELPHI}{$WARNINGS ON}{$ENDIF}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -