| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1485 人关注过本帖
标题:因操作错误,退不出VFP ,光标指向prg中的一条代码,在命令窗口输入quit也不 ...
只看楼主 加入收藏
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用sylknb在2013-3-29 16:03:13的发言:

例如应指明选择.XLS,而他选了.txt,,又是目录选错了。。。不可能每样都要判断一下选择的内容是否正确,正确了才能进行,否则退出。有否简单办法?
不这样做 怎么知道操作正确与否?
2013-03-29 16:07
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用sylknb在2013-3-29 16:03:13的发言:

例如应指明选择.XLS,而他选了.txt,,又是目录选错了。。。不可能每样都要判断一下选择的内容是否正确,正确了才能进行,否则退出。有否简单办法?
如果难以判,可以用捕捉出错

err=.f.
on error err=.t.
这是你的关键处理语句(如导入)
on error
if err
    WAIT WIND '导入出错,请检查选择的文件'
     return
endif
2013-03-29 16:21
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1535
专家分:180
注 册:2006-6-3
收藏
得分:0 
kiff
12楼兄:
请明示代码的含义,能否举一个例子里面要有代码。让俺明白。多谢了。
2013-03-29 16:44
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用sylknb在2013-3-29 16:44:10的发言:

kiff
12楼兄:
请明示代码的含义,能否举一个例子里面要有代码。让俺明白。多谢了。
就用你之前的代码吧:
cfilename=GETFILE('XLS', '','', 0, '选择一个要转化的EXCEL表')  &&获取有路径完整的文件名
cfile1=JUSTSTEM(cfilename ) &&获取不含扩展名的文件名
cpath=JUSTPATH(cfilename )  &&取路径
cfile2=JUSTEXT(cfilename) &&取扩展名
if lower(cfile2)='xls'
    err=.f.
    on error err=.t. &&如果 IMPORT FROM (cfilename) TYPE XL5 出错,则ERR=.T. 然后转到下一语句
    IMPORT FROM (cfilename) TYPE XL5
    on error &&结束错误捕捉
    if err && err初始值为 .f.(假),如导入出错,则ERR=.T. (真)
        wait wind '导入出错,请检查'
        return &&返回重新选择
    endif
endif
2013-03-29 16:53
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11806
专家分:43421
注 册:2006-5-13
收藏
得分:0 
程序编译后交给客户,源程序代码不要给客户,程序出错后就不会有调试窗口出现。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-03-29 16:58
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1535
专家分:180
注 册:2006-6-3
收藏
得分:0 
kiff
14楼兄
我遵照的指示,把上述代码放进去,并把lower(cfile2)='XLS'改为大写,程序没有应出现的提示( wait wind '导入出错,请检查')
2013-03-29 18:43
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用sylknb在2013-3-29 18:43:06的发言:

kiff
14楼兄
我遵照的指示,把上述代码放进去,并把lower(cfile2)='XLS'改为大写,程序没有应出现的提示( wait wind '导入出错,请检查')
lower(cfile2)='XLS'  不应是大写
改回去吧 lower(cfile2)='xls'  

lower()是转换为小写的

我意思是当导入语句出错时,就会提示( wait wind '导入出错,请检查'),如果没错,就继续正常运行下去


[ 本帖最后由 kiff 于 2013-3-29 18:51 编辑 ]
2013-03-29 18:46
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1535
专家分:180
注 册:2006-6-3
收藏
得分:0 
我的还特意选不选xls,而选DBF也没有反应
2013-03-29 18:54
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:20 
以下是引用sylknb在2013-3-29 18:43:06的发言:

kiff
14楼兄
我遵照的指示,把上述代码放进去,并把lower(cfile2)='XLS'改为大写,程序没有应出现的提示( wait wind '导入出错,请检查')
如果你真想测试,就改成这样,随便先个文件试试,选择个文本文件吧
cfilename=GETFILE('', '','', 0, '选择一个要转化的EXCEL表')  &&获取有路径完整的文件名
err=.f.
on error err=.t. &&如果 IMPORT FROM (cfilename) TYPE XL5 出错,则ERR=.T. 然后转到下一语句
IMPORT FROM (cfilename) TYPE XL5
on error &&结束错误捕捉
if err && err初始值为 .f.(假),如导入出错,则ERR=.T. (真)
   wait wind '导入出错,请检查'
   return &&返回重新选择
endif


[ 本帖最后由 kiff 于 2013-3-29 19:10 编辑 ]
2013-03-29 18:56
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1535
专家分:180
注 册:2006-6-3
收藏
得分:0 
试了下成功了,但
on error err=.t. &&如果 IMPORT FROM (cfilename) TYPE XL5 出错,则ERR=.T. 然后转到下一语句
IMPORT FROM (cfilename) TYPE XL5
on error &&结束错误捕捉
&&为什么on error err=.t.放在IMPORT FROM (cfilename) TYPE XL5 前面?

2013-03-29 19:17
快速回复:因操作错误,退不出VFP ,光标指向prg中的一条代码,在命令窗口输入qu ...
数据加载中...
 
   



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

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