设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2370|回复: 7
打印 上一主题 下一主题

[模块/函数] 关于LEN函数

[复制链接]
跳转到指定楼层
1#
发表于 2009-12-2 11:33:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
俺在某网站上看到一文章,其中讲到:
判断空字符串 Len("") = 0"" = "" 快 2.6倍左右
但是俺测试,发现Len(text)根本就不可能等于0,如果text为空,那么LEN出来的也是空。
烦请前辈讲解一下。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-12-2 11:46:06 | 只看该作者
Len的参数是String变量, 如果是一个Variant变量, 其值有可能是Null, 所以要用 Len(Nz(Text,"")
3#
发表于 2009-12-2 12:25:29 | 只看该作者
OK!
4#
 楼主| 发表于 2009-12-2 16:38:26 | 只看该作者
谢谢解答,那在判断字符串是否为空时,Len(Nz(Text,""))=0真的会比 isnull(text) or text=""快吗?
大家进行判断时常用哪个方法?
5#
发表于 2009-12-2 20:20:00 | 只看该作者
谢谢,学习了。
我通常用isnull(text) or text=""
6#
发表于 2009-12-3 08:41:43 | 只看该作者
len(str)=0 确实比 str="" 要快, 因为VB中字符串的保存是先字符长度,后面再跟着每个字符, 最后Null结尾.
所以VB中Len函数的运输速度是很快的, 只是直接取字符串前面的数值, 不用扫描整个字符串. 所以很快.
但如果要判断的不是纯字符串, 如Variant, 就要用Nz()转换, 增加了一个字符串的内存分配动作, 速度会变慢. 反过来说, 如果不是纯字符串, 单纯Str=""也不行, 也要加个IsNull(), 所以整体来说, 用Len() 是快的.
7#
 楼主| 发表于 2009-12-3 10:23:05 | 只看该作者
谢谢,明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-15 15:56 , Processed in 0.111233 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表