发布于 2011-08-03 01:47:50
25楼
下面是双表查询的循环。最后再提醒一下:频繁打开db块,又采用了双循环,程序整体效率不高,可以考虑单层循环用查表fc85来做,也许效率会高一些,未经验证,不过需要改db的结构。如果db内容特别多的话,可以采用上位机来做。
FUNCTION FC112 : void
VAR_TEMP
i:INT;
j:INT;
m:INT;
END_VAR
m:=0;
FOR i:=0 TO 396 BY 4 DO
//db23.dbd[i]:=db21.dbd[i];
j:=0;
WHILE j<=396 DO
IF db22.dbd[j]=db21.dbd[i] THEN
db23.dbd[m]:=db22.dbd[j];
j:=396;
m:=m+4;
END_IF;
j:=j+4;
END_while;
END_FOR;
END_FUNCTION
就像找找偷懒的诀窍