六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

VB編程中的一些經(jīng)驗(yàn)

[摘要]1. 假設(shè)VB中有如下的變量聲明: dim s1, s2 as string則s1是一個(gè)variant型變量,而s2是一個(gè)string型變量如果想要聲明兩個(gè)string變量s1和s2應(yīng)該用: dim s1 as string, s2 as string2. VB中的對(duì)象是自動(dòng)回收的,類(lèi)似java在...
1. 假設(shè)VB中有如下的變量聲明:
dim s1, s2 as string
則s1是一個(gè)variant型變量,而s2是一個(gè)string型變量
如果想要聲明兩個(gè)string變量s1和s2
應(yīng)該用:
dim s1 as string, s2 as string

2. VB中的對(duì)象是自動(dòng)回收的,類(lèi)似java
在一個(gè)過(guò)程中
sub Foo()
dim obj as new Object
.... 'do something with obj
end sub
過(guò)程結(jié)束的時(shí)候沒(méi)有必要 set obj = nothing
因?yàn)楫?dāng)離開(kāi)該過(guò)程的時(shí)候,局部變量obj消失,因此對(duì)Object對(duì)象實(shí)例的引用也就消失(除非在過(guò)程內(nèi)部有其他的全局變量引用了該對(duì)象的實(shí)例),所以對(duì)象實(shí)例會(huì)自動(dòng)釋放

但是對(duì)于模塊級(jí)的對(duì)象變量,new了一個(gè)實(shí)例后用完了必須set obj = nothing來(lái)釋放該實(shí)例

3. 對(duì)對(duì)象變量賦值應(yīng)該用 set obj = AnOtherObj 這種方式,相當(dāng)于讓obj指向AnOtherObj所指向的對(duì)象。VB中的對(duì)象變量實(shí)質(zhì)上是一個(gè)指向?qū)ο髮?shí)例的指針,這點(diǎn)和java,pascal相同,和C++中不同

4. VB中字符串的內(nèi)部存儲(chǔ)格式是Unicode,它可以自動(dòng)轉(zhuǎn)化為ANSI字符(單字節(jié)字符)或者 DBCS 字符(雙字節(jié)字符)。例如
  dim s1 as string, s2 as string
  s1 = "中文"
  s2 = left(s1, 1)
  
  則得到的實(shí)際上是  s2 = "中"
  因?yàn)閂B會(huì)自動(dòng)將s1內(nèi)部unicode的"中"字單作一個(gè)DBCS字符取出來(lái)傳給s2
  
  因此處理雙字節(jié)字符的時(shí)候特別要注意,很容易產(chǎn)生數(shù)組溢出錯(cuò)誤

  VB中的常用字符串處理函數(shù),例如Asc, Left, Mid...都會(huì)自動(dòng)判斷處理的字符串中的每個(gè)字符是單字節(jié)還是雙字節(jié)(因?yàn)樽址趦?nèi)部以Unicode存儲(chǔ),所以這一點(diǎn)很容易做到),然后自動(dòng)轉(zhuǎn)化為ANSI字符或DBCS字符。

  
5. 字符串的比較應(yīng)該是用 strCmp 函數(shù),而不是簡(jiǎn)單的用 = 號(hào)
   StrComp(string1, string2[, compare])

其中參數(shù)compare的取值含義如下:
常量                 值         含義
vbUseCompareOption   -1      根據(jù)Option Compare 語(yǔ)句的設(shè)定進(jìn)行字符串比較
vbBinaryCompare      0       進(jìn)行二進(jìn)制比較,也就是將string1和string2中的unicode字符看作數(shù)組進(jìn)行字典序比較
vbTextCompare        1       進(jìn)行文本比較
vbDatabaseCompare    2       這個(gè)選項(xiàng)只適用于Microsoft Access,根據(jù)數(shù)據(jù)庫(kù)的設(shè)定進(jìn)行比較


對(duì)于英文字符串進(jìn)行 vbTextCompare 比較時(shí),不區(qū)分字母大小寫(xiě),例如: "a" 與 "A" 相等;
對(duì)于中文或其他雙字節(jié)字符串進(jìn)行 vbTextCompare 比較時(shí),不區(qū)分全角字符和半角字符,例如 "A", "A", "a", "a" 都相等;

6. VB中字符串處理的函數(shù)有三種版本:
(1) ANSI和DBCS版本,一般的字符串函數(shù)(例如Mid(), Left(), ... )都是該版本,該版本的函數(shù)可以自動(dòng)識(shí)別ANSI字符和DBCS字符,而且無(wú)論是ANSI字符還是DBCS字符都當(dāng)作一個(gè)字符處理(雖然一個(gè)DBCS字符是兩個(gè)字節(jié),但還是當(dāng)作一個(gè)字符處理)

(2) 二進(jìn)制版本,這個(gè)版本的函數(shù)是在第一類(lèi)函數(shù)的名稱(chēng)后面加上B, 例如 MidB(), LeftB()……;這個(gè)版本的函數(shù)將字符串當(dāng)作字節(jié)數(shù)組處理,例如 s = "abc", k = LenB(s) , 則 k=6,因?yàn)樽址赩B內(nèi)部以u(píng)nicode存儲(chǔ),而一個(gè)unicode字符占兩個(gè)字節(jié),所以s實(shí)際上占用了2*3=6個(gè)字節(jié)的空間,于是LenB(s)返回6

(3) Unicode版本,這個(gè)版本的函數(shù)是在第一類(lèi)函數(shù)名稱(chēng)后面加上W,例如AscW, ChrW;這個(gè)版本的函數(shù)將字符串當(dāng)作unicode處理。

函數(shù)                    功能描述
Asc              Returns the ANSI or DBCS character code for the first character of a string.
AscB             Returns the value of the first byte in the given string containing binary data.
AscW             Returns the Unicode character code for the first character of a string.
Chr              Returns a string containing a specific ANSI or DBCS character code.
ChrB             Returns a binary string containing a specific byte.
ChrW             Returns a string containing a specific Unicode character code.
Input            Returns a specified number of ANSI or DBCS characters from a file.
InputB           Returns a specified number of bytes from a file.
InStr            Returns the first occurrence of one string within another.
InStrB           Returns the first occurrence of a byte in a binary string.
Left,Right      Returns a specified number of characters from the right or left sides of a string.
LeftB, RightB    Returns a specified number of bytes from the left or right side of a binary string.
Len              Returns the length of the string in number of characters.
LenB             Returns the length of the string in number of bytes.
Mid              Returns a specified number of characters from a string.
MidB             Returns the specified number of bytes from a binary string.


7. VB程序代碼中的以下標(biāo)識(shí)符不能含有雙字節(jié)字符:
Public procedure names  公共過(guò)程名稱(chēng)
Public variables 公共變量
Public constants 公共常量
Project name (as specified in the Project Properties dialog box) 工程名稱(chēng)(在工程屬性對(duì)話(huà)框中的名字) [PS: VB中文版中的工程名稱(chēng)可以是中文,比較奇怪的說(shuō)]
Class names (Name property of a class module, a user control, a property page, or a user document)  類(lèi)名(類(lèi)模塊、用戶(hù)控件模塊,屬性頁(yè),用戶(hù)文檔的name屬性)


換句話(huà)說(shuō),其他的標(biāo)識(shí)符都可以用中文,例如:
Private Sub cmdTest_Click()
   Dim 中文變量 As String
   中文變量 = "你好! hello!"
   MsgBox 中文變量
End Sub

這樣的代碼也是合法的 :-)


主站蜘蛛池模板: 青青青青青在线视频播放 | 夜夜揉揉日日人人视频 | 青青在线视频 | 日韩性黄色一级 | 特一级黄| 色www永久免费视频 色www亚洲 | 日本一区不卡在线 | 欧美一区二区三区婷婷月色 | 在线不欧美 | 亚洲视频三区 | 亚洲国产观看 | 天天搞夜夜操 | 欧美一级做a爰片免费 | 日本午夜在线视频 | 色噜噜色偷偷 | 天天干在线观看 | 青青国产线免观看手机版精品 | 四虎国产永久在线精品免费观看 | 午夜伊人 | 天天做天天爱天天影视综合 | 亚洲精品成人网 | 日韩国产欧美在线观看 | 日本高清不卡免费 | 欧美一级在线观看视频 | 青青草综合 | 日本欧美国产精品第一页久久 | 中文字幕免费视频精品一 | 视频在线精品 | 欧美亚洲激情视频 | 日韩精品久久久免费观看夜色 | 青青视频免费 | 天天天天做夜夜夜做 | 日本高清影院 | 午夜性福 | 亚洲高清在线播放 | 性生活一区 | 欧美一区二区影院 | 日本福利片国产午夜久久 | 青青草自拍 | 亚洲第一影视 | 中文有码中文字幕免费视频 |