在vb中left和left$有什么区别啊????

京霾 2002-05-18 03:13:25
谢谢!
...全文
1012 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovingkiss 2002-05-18
  • 打赏
  • 举报
回复
测试了,我认输了;
我的理论也是书上看来的,回去就X掉它


发这个贴子是告诉大家:Left$比Left块——已经是事实了;抱歉,希望没有误导大家
zyl910 2002-05-18
  • 打赏
  • 举报
回复
Left是返回Variant
Left$是返回String

由于String运算比Variant运算快
所以Left$比Left块
footballboy 2002-05-18
  • 打赏
  • 举报
回复
举个简单例子,可以看出left$比left快2%,对于复杂的情况差距还会更大
Private Sub Command1_Click()
Dim i As Long
Dim str As String
Dim t As Variant
t = Timer
For i = 0 To 30000
str = str & Left(Combo1.List(i), 9) + vbCrLf
Next
Label1.Caption = "用时" & CStr(Timer - t) & "秒"
RichTextBox1.Text = str
End Sub

Private Sub Command2_Click()
Dim i As Long
Dim str As String
Dim t As Variant
t = Timer
For i = 0 To 30000
str = str & Left$(Combo1.List(i), 9) + vbCrLf
Next
Label1.Caption = "用时" & CStr(Timer - t) & "秒"
RichTextBox1.Text = str
End Sub

Private Sub Form_Load()
Dim i As Long
Dim t As Variant
t = Timer
For i = 0 To 100
Combo1.AddItem CStr(i) & "abcdefghijk"
Combo1.ListIndex = 0
Next
End Sub
icy_csdn 2002-05-18
  • 打赏
  • 举报
回复
嗯,学习!
lovingkiss 2002-05-18
  • 打赏
  • 举报
回复
实际上VB在字符处理上本身就慢,而$并不是加快的方法;
因为$只是VB5遗留下来的写法而已;为了兼容早期的版本,才保留下来的;现在标准的写法里面$越来越少了;怎么会快5-10%?那里统计的??
如果真的能快的话;为什么还会有不带$的出现?和不直接的把Left$做成Left函数??

返回 Variant (String),其中包含字符串中从左边算起指定数量的字符。

语法

Left(string, length)

Left 函数的语法有下面的命名参数:

部分 说明
string 必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string 包含 Null,将返回 Null。
length 必要参数;为 Variant (Long)。数值表达式,指出将返回多少个字符。如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。


返回 Variant的时候,只是当返回Null的时候,是为了兼容Null的;
---------------------------------------------------------------
不建议使用$,呵呵,也许是我少见多怪;
lovingkiss 2002-05-18
  • 打赏
  • 举报
回复
实际上VB在字符处理上本身就慢,而$并不是加快的方法;
因为$只是VB5遗留下来的写法而已;为了兼容早期的版本,才保留下来的;现在标准的写法里面$越来越少了;怎么会快5-10%?那里统计的??
如果真的能快的话;为什么还会有不带$的出现?和不直接的把Left$做成Left函数??

返回 Variant (String),其中包含字符串中从左边算起指定数量的字符。

语法

Left(string, length)

Left 函数的语法有下面的命名参数:

部分 说明
string 必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string 包含 Null,将返回 Null。
length 必要参数;为 Variant (Long)。数值表达式,指出将返回多少个字符。如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。


返回 Variant的时候,只是当返回Null的时候,是为了兼容Null的;
---------------------------------------------------------------
不建议使用$,呵呵,也许是我少见多怪;
footballboy 2002-05-18
  • 打赏
  • 举报
回复
使用"$-类型"字符串函数会更快
VB官方文档似乎很鼓励使用"无$"类字符串函数,比如:Left、LTrim或者UCase,而不是实现同样功能的Left$、LTrim$和UCase$函数。但是我们必须认识到:前者返回variant类型的数值,当用于字符串表达式中时,最终必须要转换为字符串(string)类型。

因此,在严格要求时间的代码段中,我们应该使用后者,它们将快5-10%。
hooohooooooo 2002-05-18
  • 打赏
  • 举报
回复
$表示字符串
dyugao 2002-05-18
  • 打赏
  • 举报
回复
left:可以指一个对象的左边位置
left$:返回一个字符串的左边一定数量的字符

在返回左边一定数量字符的用法上我发现它们是一样的

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧