| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3704 人关注过本帖
标题:VB十七种可用一行代码完成的技巧(转)
只看楼主 加入收藏
冰河世纪
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:2167
专家分:0
注 册:2006-11-7
收藏
 问题点数:0 回复次数:12 
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()

搜索更多相关主题的帖子: 布尔 技巧 代码 XOR Else 
2006-12-26 11:01
冰河世纪
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:2167
专家分:0
注 册:2006-11-7
收藏
得分:0 
希望大家能看懂!!!

冰一样的少年,外表是冰,冷酷而强大;内心是冰,却一暖成水,柔柔漫漫
2006-12-26 11:02
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
好...

我的msn: myfend@
2006-12-26 13:16
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
楼主幸苦了.

飘过~~
2006-12-26 14:06
glz20068888
Rank: 1
等 级:新手上路
威 望:1
帖 子:26
专家分:0
注 册:2007-5-8
收藏
得分:0 
   很好,我很喜欢,多谢楼主了

努力吧,你会成功的!!!
2007-10-08 10:45
wanglirainy
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-6-6
收藏
得分:0 
2007-10-15 19:20
simpson
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:863
专家分:17
注 册:2006-11-16
收藏
得分:0 


总结性的帖子要多发发

经验那!!

全国最大的 Java专业电子书免费分享[url]http:///in.asp?id=xrmao[/url]
2007-10-15 20:45
adou
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:863
专家分:81
注 册:2006-8-24
收藏
得分:0 

不错,支持。


大家好,才是真的好!
2007-10-16 08:03
Sunyueliboy
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-9-20
收藏
得分:0 

个人认为:
简化代码应该有一个底线,那就是不能太晦涩.
建议初学的朋友们尽量用通俗易懂的写法,免得绕来绕去,把自已都绕涂了.
对IIF这样的函数支持,
对第13条就不敢苟同了!

2007-10-16 09:52
momia
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-10-15
收藏
得分:0 

总结当然很好了,可是我觉得没什么大用,现在 CPU快得很,写再繁琐的语句都不会有什么大影响的啦。
我觉得代码易读比较重要,反正我们编程只是想解决问题。


你的代码拿来考学生的基本功还是很有用的。


编程是业余爱好,写了程序自己用的。
2007-10-19 14:46
快速回复:VB十七种可用一行代码完成的技巧(转)
数据加载中...
 
   



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

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