|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 同样的语句,不同的机器,竟然结果不同
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1607
人关注过本帖
标题:
同样的语句,不同的机器,竟然结果不同
只看楼主
加入收藏
taifu945
等 级:
贵宾
威 望:
80
帖 子:1545
专家分:3298
注 册:2012-7-6
第
11
楼
收藏
得分:0
以下是引用
scilent
在2013-8-15 12:59:45的发言:
我觉得,非常有道理,以前没有注意这个问题,谢谢指点
谈不上指点。我只是凭第一感觉,没有实测你的程序,你可以用调试窗口一条条运行代码,然后在监视窗口把几个重点变量监控一下,观察它们值的变化是否符合你的预期。另外,你第一句中的“Interger”写错了,整型的英语是“Integer”。
2013-08-15 13:02
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
12
楼
收藏
得分:0
看清楚了,VFP没那么容易溢出:
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
授人以渔,不授人以鱼。
2013-08-15 13:03
举报帖子
使用道具
赠送鲜花
scilent
等 级:
蜘蛛侠
帖 子:285
专家分:1399
注 册:2011-8-9
第
13
楼
收藏
得分:0
以下是引用
TonyDeng
在2013-8-15 12:58:42的发言:
一看用了位异或运算,这代码就没什么意思。位运算之后,那个序列号是负数,加上负号,是11位字符,而str()函数默认是10位字符,到后面的newstr字符串只有4个字符,但他又在循环中每次提取2个字符作chr()字符——显然当汉字用——最后都不知道想干什么。整个运算绕来绕去,把简单的事情搞复杂。
谢谢您的指导。没有注意的位数的问题。真是太感谢了
你说得对,就是想搞复杂点,可是玩过火了。
在没有路的地方走一条路,让别人有路可走
2013-08-15 13:03
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
14
楼
收藏
得分:0
如果对溢出的现象不清楚,参考一下置顶描红那个帖子。
授人以渔,不授人以鱼。
2013-08-15 13:05
举报帖子
使用道具
赠送鲜花
scilent
等 级:
蜘蛛侠
帖 子:285
专家分:1399
注 册:2011-8-9
第
15
楼
收藏
得分:0
以下是引用
taifu945
在2013-8-15 13:02:49的发言:
谈不上指点。我只是凭第一感觉,没有实测你的程序,你可以用调试窗口一条条运行代码,然后在监视窗口把几个重点变量监控一下,观察它们值的变化是否符合你的预期。另外,你第一句中的“Interger”写错了,整型的英语是“Integer”。
谢谢,太心焦了弄错了。虽然您 没有试,但您一说到值的问题,我马上想到问题可能出什么地方,对我有启发!
在没有路的地方走一条路,让别人有路可走
2013-08-15 13:08
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
16
楼
收藏
得分:0
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
授人以渔,不授人以鱼。
2013-08-15 13:09
举报帖子
使用道具
赠送鲜花
whinda
等 级:
贵宾
威 望:
13
帖 子:253
专家分:418
注 册:2012-2-4
第
17
楼
收藏
得分:0
以下是引用
TonyDeng
在2013-8-15 12:58:42的发言:
一看用了位异或运算,这代码就没什么意思。位运算之后,那个序列号是负数,加上负号,是11位字符,而str()函数默认是10位字符,到后面的newstr字符串只有4个字符,但他又在循环中每次提取2个字符作chr()字符——显然当汉字用——最后都不知道想干什么。整个运算绕来绕去,把简单的事情搞复杂。
同意版主的说法。运行了一下,我这儿错误出在str(),没有规定返回长度,数值串长度溢出,newstr=alltrim(str(newserial))就是这儿的隐患错误,数值串长度如果默认限定又没有另行规定长度时,溢出。
2013-08-15 13:10
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
18
楼
收藏
得分:0
要取得数值(不管是整数还是浮点数)的字符串,使用TRANSFORM()函数即可,不用绕来绕去,因为VFP内部所有数值型数据都是以字符串储存的,哪怕是超出2^32的整数,只要在赋值时在后面加个.0作为浮点数,VFP就把它视为64位的数据储存,然而在内部字符串中,它却是没有.0的,即完完整整的比2^32还长的长整数形式,用TRANSFORM()把这个内部形式反馈出来就是了。
记住:TRANSFORM()函数返回的是数据的内部形式,即最原始的形式。
[
本帖最后由 TonyDeng 于 2013-8-15 13:30 编辑
]
授人以渔,不授人以鱼。
2013-08-15 13:16
举报帖子
使用道具
赠送鲜花
scilent
等 级:
蜘蛛侠
帖 子:285
专家分:1399
注 册:2011-8-9
第
19
楼
收藏
得分:0
回复 16楼 TonyDeng
昨天我在逐条测试的时候,发觉那个 地方有问题,不知道为什么 。
vfp说明很早的时候看过,现在基本上是用到哪儿看哪儿。我只有6.0的说明,在str()中没有提到位数的问题,所以也就忽略了。您一行行给我演示,再次感谢。
在没有路的地方走一条路,让别人有路可走
2013-08-15 13:24
举报帖子
使用道具
赠送鲜花
whinda
等 级:
贵宾
威 望:
13
帖 子:253
专家分:418
注 册:2012-2-4
第
20
楼
收藏
得分:0
newstr,全是******,
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
2013-08-15 13:34
举报帖子
使用道具
赠送鲜花
23
2/3页
1
2
3
快速回复:
同样的语句,不同的机器,竟然结果不同
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.057965 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved