| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1562 人关注过本帖
标题:代码在VFP9运行时出现错误
只看楼主 加入收藏
gzzytxy
Rank: 2
等 级:论坛游民
帖 子:77
专家分:16
注 册:2010-1-26
收藏
得分:2 
我的VFP9 运行正常
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-01-24 16:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9808
专家分:26987
注 册:2012-2-5
收藏
得分:0 
出鬼了,莫名其妙,以前运行没有问题,现在不知道是什么原因

坚守VFP最后的阵地
2013-01-24 16:14
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
重装看看
2013-01-24 16:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
那个写法本身就暗藏了2楼所说的隐患。多数是编译过之后运行会出现这种情况。

授人以渔,不授人以鱼。
2013-01-24 16:24
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
定义局部数组,不需要用array的,那是一条运行指令,不是定义。

这样定义即可:
LOCAL laStr[50]
这个就是局部(LOCAL)数组了。

VFP不是强类型语言,数组中的元素也不要求是统一的数据类型,所以写AS Character是没意义的,但写了也不碍事,提醒自己这个数组主要用来存什么数据类型的。对数组,尽量使用方括号[],不要用圆括号(),那极可能被编译器当作是函数,而不是数组。在解释模式下执行,解释器还可以动态切换,即发现找不到这个函数就把它当数组解释,但编译器就不是这样了,它可能认这种语法为函数,编译出来是当函数调用的,运行时就不会再改了。

授人以渔,不授人以鱼。
2013-01-24 16:32
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9808
专家分:26987
注 册:2012-2-5
收藏
得分:0 
回复 15楼 TonyDeng
方括号也没用

坚守VFP最后的阵地
2013-01-24 17:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
For i=1 To 10
    If !Empty(lastr(i))
        ?'{'+Padl(i-1,2)+'次}: '+[(]+lastr(i)+[码)]+Chr(13)
    Endif
Endfor

授人以渔,不授人以鱼。
2013-01-24 18:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9808
专家分:26987
注 册:2012-2-5
收藏
得分:0 
    lastr[lns+1] = lastr[lns+1] + lcma+' '
执行到这行就出现错误了

坚守VFP最后的阵地
2013-01-24 18:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
lastr=[]        && 这里已把数组冲刷为空字符串,蜕化为单变量
For i=1 To 50
    lcma=Padl(i,2,'0')
    lns=Occurs(lcma,lcstr)
    lastr(lns+1) = lastr(lns+1) + lcma+' '    && 继上,laStr不认为是数组,而认为是函数
Endfor

授人以渔,不授人以鱼。
2013-01-24 18:05
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9808
专家分:26987
注 册:2012-2-5
收藏
得分:0 
以下是引用TonyDeng在2013-1-24 18:05:14的发言:

lastr=[]        && 这里已把数组冲刷为空字符串,蜕化为单变量
For i=1 To 50
    lcma=Padl(i,2,'0')
    lns=Occurs(lcma,lcstr)
    lastr(lns+1) = lastr(lns+1) + lcma+' '    && 继上,laStr不认为是数组,而认为是函数
Endfor
lastr=[] &&为所有数组元素赋值,实际上定义数组元素为字符型变量
现在的问题是,这段代码在VFP6.0中运行正常,在别人的VFP9中运行也正常,在我的VFP9中运行就出现问题。类似问题在别的论坛也看到过。

坚守VFP最后的阵地
2013-01-24 18:21
快速回复:代码在VFP9运行时出现错误
数据加载中...
 
   



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

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