在 Foxpro 中替换为 for
replace with for in Foxpro
我正在对 FoxPro 中制作的程序进行逆向工程。
我对FoxPro一窍不通,幸好程序简单,所有的流程我都能看懂
我有这个,在源代码中
Select 1
SET RELATION TO GROUP_T+POL INTO BASE2
REPLACE MARK_T WITH BASE2->STATUS FOR GROUP_T+POL=BASE2->GROUP_T+POL
REPLACE LAPSE2 WITH BASE2->LAPSE FOR GROUP_T+POL=BASE2->GROUP_T+POL
REPLACE STATUS2 WITH BASE2->STATUS FOR GROUP_T+POL=BASE2->GROUP_T+POL
REPLACE DATPAHAS2 WITH BASE2->DATPAHAS FOR GROUP_T+POL=BASE2->GROUP_T+POL
CLOSE DATABASES
我需要知道变量LAPSE2
稍后会用到它。
但我不知道计算结果
这是什么意思?
REPLACE LAPSE2 WITH BASE2->LAPSE FOR GROUP_T+POL=BASE2->GROUP_T+POL
这是稍后在条件中使用前出现的唯一行
在您显示的片段中,当前 table 中每个 LAPSE2
的值被替换为 [=] 中第一个匹配记录的 LAPSE
字段的值13=],基于那个table.
中当前设置的索引
FOR
子句将此限制为在 BASE2
中具有匹配记录的记录;跳过不匹配的记录(保持不变)。如果没有此过滤器,当没有匹配记录时,LAPSE2
的新值将是一个空值 ('', .f., 0, ...)。
注意:没有任何 FOR
或 WHILE
的 REPLACE
只会影响单个记录,因为缺少范围子句意味着 NEXT 1
(另一种方式看起来 FOR
有点暗示 ALL
而 WHILE
有点暗示 REST
).
代码片段开头的 SET RELATION
语句导致 Fox 在 BASE2
table 中执行查找,结果是计算表达式 GROUP_T+POL
每当记录指针改变。换句话说:每当主 table 中的记录指针移动时,子 table(s) 中的记录指针将移动到第一个匹配记录(如果有)或 EOF(如果没有)比赛。
因此 SET RELATION
与 REPLACE ... FOR <key match>
的组合类似于
replace LAPSE2 with Base2.LAPSE for seek(GROUP_T + POL, [Base2])
注意:此声明仅用于说明发生的情况;它不应该在实际代码中使用,因为它充满了问题和错误。
我正在对 FoxPro 中制作的程序进行逆向工程。
我对FoxPro一窍不通,幸好程序简单,所有的流程我都能看懂
我有这个,在源代码中
Select 1
SET RELATION TO GROUP_T+POL INTO BASE2
REPLACE MARK_T WITH BASE2->STATUS FOR GROUP_T+POL=BASE2->GROUP_T+POL
REPLACE LAPSE2 WITH BASE2->LAPSE FOR GROUP_T+POL=BASE2->GROUP_T+POL
REPLACE STATUS2 WITH BASE2->STATUS FOR GROUP_T+POL=BASE2->GROUP_T+POL
REPLACE DATPAHAS2 WITH BASE2->DATPAHAS FOR GROUP_T+POL=BASE2->GROUP_T+POL
CLOSE DATABASES
我需要知道变量LAPSE2
稍后会用到它。
但我不知道计算结果
这是什么意思?
REPLACE LAPSE2 WITH BASE2->LAPSE FOR GROUP_T+POL=BASE2->GROUP_T+POL
这是稍后在条件中使用前出现的唯一行
在您显示的片段中,当前 table 中每个 LAPSE2
的值被替换为 [=] 中第一个匹配记录的 LAPSE
字段的值13=],基于那个table.
FOR
子句将此限制为在 BASE2
中具有匹配记录的记录;跳过不匹配的记录(保持不变)。如果没有此过滤器,当没有匹配记录时,LAPSE2
的新值将是一个空值 ('', .f., 0, ...)。
注意:没有任何 FOR
或 WHILE
的 REPLACE
只会影响单个记录,因为缺少范围子句意味着 NEXT 1
(另一种方式看起来 FOR
有点暗示 ALL
而 WHILE
有点暗示 REST
).
代码片段开头的 SET RELATION
语句导致 Fox 在 BASE2
table 中执行查找,结果是计算表达式 GROUP_T+POL
每当记录指针改变。换句话说:每当主 table 中的记录指针移动时,子 table(s) 中的记录指针将移动到第一个匹配记录(如果有)或 EOF(如果没有)比赛。
因此 SET RELATION
与 REPLACE ... FOR <key match>
的组合类似于
replace LAPSE2 with Base2.LAPSE for seek(GROUP_T + POL, [Base2])
注意:此声明仅用于说明发生的情况;它不应该在实际代码中使用,因为它充满了问题和错误。