标题:关于VFP替换字段的问题
只看楼主
dk2009
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-8-27
结帖率:50%
已结贴  问题点数:20 回复次数:17 
关于VFP替换字段的问题
  
    我用的是VFP6.0,写命令如下:
    close data
    use c:\Documents and Settings\user\桌面\新建文件夹\表1.dbf in 1
    use c:\Documents and Settings\user\桌面\新建文件夹\表2.dbf in 2
    sele 1
    scan
    sele 2
    repl 表2.Ksh with 表1.Zkzh for 表2.Zjhm=表1.Zjhm
    end for
    sele 1
    endscan
    目的是对于两个表Zjhm字段相同的记录,用表1的Zkzh字段替换表2的Ksh字段。
    命令报错“嵌套错误”,这个问题困扰我很长时间了。
    请指教!


[ 本帖最后由 dk2009 于 2009-8-27 21:47 编辑 ]
搜索更多相关主题的帖子: VFP 字段 
2009-08-27 18:33
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
得分:7 
    close data
    use c:\Documents and Settings\user\桌面\新建文件夹\表1.dbf in 1
    use c:\Documents and Settings\user\桌面\新建文件夹\表2.dbf in 2
    sele 1
    scan
    sele 2
    repl 表2.Ksh with 表1.Zkzh for 表2.Zjhm=表1.Zjhm
*   end for  && 这句没有来由,删去即可~
    sele 1
    endscan
2009-08-27 19:28
dk2009
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-8-27
得分:0 
回复 2楼 茵梦湖
谢谢!
可是仍然报“嵌套错误”。
2009-08-27 19:41
sd_tysd
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:81
专家分:319
注 册:2009-7-23
得分:7 


    close data
    use c:\Documents and Settings\user\桌面\新建文件夹\表1.dbf in 1
    use c:\Documents and Settings\user\桌面\新建文件夹\表2.dbf in 2
    sele 1
    scan
    sele 2
    repl 表2.Ksh with 表1.Zkzh for 表2.Zjhm=表1.Zjhm  《2区中怎能到1区的循环》
    sele 1
    endscan
《2区中怎能到1区的循环》   scan     endscan  怎能在1个区内1个表内执行两个区内不能执行。
在1区内建立循环,取得变量 到2区内找符合条件的替换 没必要执行 scan     endscan
    close data
    use c:\Documents and Settings\user\桌面\新建文件夹\表1.dbf in 1
    use c:\Documents and Settings\user\桌面\新建文件夹\表2.dbf in 2
    sele 1
 go top
 do while .not.eof()  &&表1循环
    表1Zjhm=Zjhm     &&表1的 Zkzh 赋予 变量(表1Zjhm)
     sele 2
    repl Ksh with 表1Zjhm for Zjhm=表1Zjhm  《2区中怎能到1区的循环》
    sele 1
   skip
 enddo


[ 本帖最后由 sd_tysd 于 2009-8-27 23:02 编辑 ]
2009-08-27 22:59
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
得分:0 
回复 4楼 sd_tysd

2楼 和编辑过以后的1楼 的循环并没有错~~~  单从这段代码看, 其第2和第3句 就有vfp6貌似通不过的语病, 而楼主却说到了后面的“嵌套错误”, 我很纳闷, 也就没有再复贴~~~
这样的循环是符合规范, 是可行的~~~ 特意制作测试程序如下(通过测试)~~~
程序代码:
set safe off
clos all
crea dbf c:\表1 (Zjhm c(3),Zkzh c(7))
crea dbf c:\表2 (Zjhm c(3),ksh  c(7))
for kk=1 to 20
    inse into 表1 valu(tran(kk),subs(repl("qtrqiotutuoi46igpqoweg",6),kk*2-1,2) )
    inse into 表2 valu(tran(kk+7),subs(repl("满城春色宫墙柳东风恶欢情薄",6),kk*2-1,2) ) 
endfor
clos data
sele 2
use c:\表2 excl
brow noed titl " >> 这是原表2... zjhm为8-27,   ksh全为汉字"
sele 1
use c:\表1 excl
brow noed titl " >> 这是原表1... zjhm为1-20,   zkzh全为字母和数字"
scan
   sele 2
   repl 表2.ksh with 表1.zkzh for 表2.zjhm=表1.zjhm
endscan
sele 2
go top
brow noed titl " >> 这是替换后的表2... ksh原全为汉字, 现在zjhm=8-20(与表1相同) 替换成了 表1的字母和数字~"
retu

[ 本帖最后由 茵梦湖 于 2009-8-28 00:16 编辑 ]

[ 本帖最后由 茵梦湖 于 2009-8-28 00:20 编辑 ]
2009-08-28 00:15
dk2009
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-8-27
得分:0 
回复 4楼 sd_tysd
“在交互方式下不能使用此语句”——enddo
2009-08-30 22:10
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:0 
(1)1楼程序似乎可以这样:
close all
use "c:\Documents and Settings\user\桌面\新建文件夹\表1.dbf" in 1
use "c:\Documents and Settings\user\桌面\新建文件夹\表2.dbf" in 2
sele 1
scan
  sele 2
  repl 表2.Ksh with 表1.Zkzh for 表2.Zjhm=表1.Zjhm
  sele 1
endscan
(2)6楼问题【“在交互方式下不能使用此语句”——enddo 】是因为你在命令窗口中输入的,这个就是交互方式。enddo在这种方式下没有任何意义。请打开编辑器(新建命令程序),输入文件中,再执行。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2009-09-01 22:11
sd_tysd
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:81
专家分:319
注 册:2009-7-23
得分:0 
SCAN ... ENDSCAN 也不能在交互下使用
直接用 表2.Ksh with 表1.Zkzh for 表2.Zjhm=表1.Zjhm
但是 表1.Zkzh 是当前记录,如果 表1.Zkzh 当前记录是1 表1.Zkzh 的值就第一条的 Zkzh 的值
如果 表1.Zkzh 当前记录是2 表1.Zkzh 的值就第二条的 Zkzh 的值
sele 1 要 记录指针向后移,交互式不可能一次命令完成。
SCAN ... ENDSCAN 使用在交互中必然出现嵌套错误。
2009-09-01 23:37
dk2009
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-8-27
得分:0 
回复 8楼 sd_tysd
好的,谢谢!
2009-09-02 09:19
dk2009
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-8-27
得分:0 
回复 7楼 Tiger5392
repl 表2.Ksh with 表1.Zkzh for 表2.Zjhm=表1.Zjhm
这个有错误——“命令中含有不能识别的短语或关键字”。
谢谢!
2009-09-02 09:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-283886-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.128394 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved