VB十七种可用一行代码完成的技巧

转载 2006年05月28日 11:03:00
编程要讲效率,尽管现在的计算机,速度是不成问题,但是,如果一行代码能完成,为什么要用更多的代码呢?现在介绍VB中一些可用一行代码完成的技巧。

1、下列代码,则是对逻辑运算不清楚造成

If A=true Then
C= Not B
Else
C= B
End If


 可以:

C=A XOR B



2、如果加上下列代码:

If C=true then
D=28
Else
D=29
End IF


D=Iif((A XOR B),28,29)



3、布尔赋值,常被人忽略,如:

If A= 13 then

B=True

Else

B=False

End If


 可以:

B = A = 13


 或者:

B = (A = 13)


 我更喜欢用后者,这样代码易于看懂。
4、字串有效性检测:

If IsNull(StrOrg) Or StrOrg="" then


 可以:

If Len(StrOrg & "")<>0 then



5、字串重复次数

RepeatCount=Ubound(Split(StrOrg,StrFind))


 同样,如果要对字串有效性判断:

RepeatCount=Iif((Len(StrOrg & "")=0), 0, Ubound(Split(StrOrg,StrFind))



6、有时需要判断字串数组中是否有这一元素,这时最好不用数组,而用分隔符字串,于是:

If Len(OrgStr)= Len(Replace(OrgStr,FindStr)) then


 则表明,此元素不存在。


7、对数组初始化,最好用变体,这样,也是一行语句,如:

IntArr=Array(12,28,29,30,31,52,24,60)


 注意,此时需要用变量后缀。上面代码,如要定义为长整型,则

IntArr=Array(12&,28&,29&,30&,31&,52&,24&,60&)


 要将IntArr 定义为变体


8、判断大小:

IntMax = Iif((IntA > IntB), IntA, IntB)

IntMin = Iif((IntA < IntB), IntA, IntB)

9、按索引的Select Case

Function GetChoice(Ind As Integer)
GetChoice = Choose(Ind, "Speedy", "United", "Federal")
End Function



10、按表达式的Select Case(这种转换要求不能有Case Else的才可以这样,否则会出错)

Function MatchUp (CityName As String)
Matchup =tch(CityName = "London", "English", CityName _
= "Rome", "Italian", CityName = "Paris", "French")
End Function



11、使用Iif,前面已有

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function



12、字串动态数组是否已初始化

If Len(Join(StrArr))=0 then


 字串动态数组未初始化。


13、指定只读CombBox的当前值,如果能确认这个值就在其中,一定不会错,则:

Combbox=CurValue


 注意,不可以写成:

Combbox.text=CurValue


 前者实际是写 _default 这个属性,而后者则是写Text 因为只读,则会导致错误

14、如果有下列代码:

Select Case CombBox.text
Case "London"
Call FuncStrLang(3)
Case "Rome"
Call FuncStrLang(5)
......
End Select


 则可以用ItemData属性,即:

"London" 的 Itemdata=3
"Rome" 的 Itemdata=5


 于是:

Call FuncStrLang(CombBox.ItenData)



15、如果有下列代码:

Select Case CombBox.text
Case "London"
Call ClsCity.CityIntr_London
Case "Rome"
Call ClsCity.CityIntr_Rome
......
End Select


 只要:

CallByName ClsCity, "CityIntr_" & CombBox.text, vbMethod



16、复制数组到另一变量中:

Dim iOrgArr(30) as Integer
Dim iDesArr as Variant
......
iDesArr = iOrgArr


 即主变体直接取数组指针,则所有元素都复制了过去。


17、如果有下列代码:

Do While Not RsAdo.Eof
If len(DesStr)<>0 then
DesStr=DesStr & VbTab
End if
DesStr=RsAdo!Rec_id
RsAdo.MoveNext
loop


 则只要:

DesStr=RsAdo.GetString()

在win7、win8、win8.1上安装使用vb6.0

点我进入原文地址 个人网盘地址: http://pan.baidu.com/s/1mh7ihZU 前言 由于我们是写c++的, vb 也不是特别懂, 今天我们家大美女跑来问...
  • zhyh1435589631
  • zhyh1435589631
  • 2016年04月28日 13:02
  • 1441

一行代码完成并行任务

本文由 伯乐在线 - colleen__chen 翻译自 Chris。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。 众所周知,Python的并行处理能力很不理想。我认为如果不考虑线程和...
  • tigerstudent
  • tigerstudent
  • 2014年04月27日 21:48
  • 643

一行代码完成并行任务

转载地址:http://blog.jobbole.com/58700/ 本文由 伯乐在线 - colleen__chen 翻译自 Chris。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。 ...
  • chengfangang
  • chengfangang
  • 2014年02月14日 10:53
  • 818

【Visual Basic】纯代码不拖控件,利用动态生成控件的方式完成一个简单的四则运算计算器

vb6是一个典型的拖控件加代码的编程代表,因此也一直被认为难登大雅之堂,但是,在vb6中可以完全纯粹地使用代码控制这个窗体与窗体的控件。这样生成出来的控件位置摆放精确无比,无须拖好控件之后,再利用工具...
  • yongh701
  • yongh701
  • 2015年05月26日 20:55
  • 2438

(转)C#生成基于COM的DLL供VB调用

用Visual C#生成的DLL文件已经和以前的DLL文件有了本质上的区别。VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使...
  • converse0525
  • converse0525
  • 2013年11月01日 15:44
  • 903

七种排序的实现

1. 冒泡排序 2. 选择排序 3. 快速排序 4. 归并排序 5. 插入排序 6. 希尔排序 7. 堆排序...
  • ggmfengyangdi
  • ggmfengyangdi
  • 2016年07月20日 21:52
  • 574

一行代码完成HibernateTemplate各种数据库操作

import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; import java.u...
  • qq545923664
  • qq545923664
  • 2013年12月26日 17:30
  • 7241

学术会议高手速成之七种武器(超长篇)

转载自「http://www.douban.com/note/38794424/」
  • lqhbupt
  • lqhbupt
  • 2014年07月09日 14:53
  • 1795

IAR常用快捷键和使用小技巧

1、复制和粘贴几行的部分代码 需求:有时候我们需要复制几行代码的后半部分,不需要复制前半部分。 方法:按住Alt键,再用鼠标拖动就可以复制和粘贴后半部分 【END/2015-09-23】...
  • L20130316
  • L20130316
  • 2015年09月23日 10:20
  • 7177

如何理解卷积:信号处理、图像处理中的应用

信号与系统中的卷积解释 作者:张俊博 链接:https://www.zhihu.com/question/22298352/answer/34267457 来源:知乎 著作权归作者所有,转载请联系作...
  • u011447369
  • u011447369
  • 2016年12月08日 11:08
  • 1737
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB十七种可用一行代码完成的技巧
举报原因:
原因补充:

(最多只允许输入30个字)