国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VB編程基礎(chǔ)教程7–數(shù)據(jù)類型 | 異次元軟件世界

VB編程基礎(chǔ)教程7–數(shù)據(jù)類型

收藏到QQ書簽 [ 程序樂園 ]

變量是用來存儲值的所在處;它們有名字和數(shù)據(jù)類型。變量的數(shù)據(jù)類型決定了如何將代表這些值的位存儲到計算機的內(nèi)存中。在聲明變量時也可指定它的數(shù)據(jù)類型。所有變量都具有數(shù)據(jù)類型,以決定能夠存儲哪種數(shù)據(jù)。
根據(jù)缺省規(guī)定,如果在聲明中沒有說明數(shù)據(jù)類型,則令變量的數(shù)據(jù)類型為 variant。variant 數(shù)據(jù)類型很象一條變色龍— 它可在不同場合代表不同數(shù)據(jù)類型。當指定變量為 variant 變量時,不必在數(shù)據(jù)類型之間進行轉(zhuǎn)換,visual basic 會自動完成各種必要的轉(zhuǎn)換。
但是,如果知道變量確實總是存儲特定類型的數(shù)據(jù),并且還聲明了這種特定類型的變量,則 visual basic 會以更高的效率處理這個數(shù)據(jù)。例如,存儲人名的變量最好表示成 string 數(shù)據(jù)類型,因為名字總是由字符組成。
除變量外,數(shù)據(jù)類型也用于其它場合。在給屬性賦值時,這個值就有數(shù)據(jù)類型;函數(shù)的參數(shù)也有數(shù)據(jù)類型。事實上,在 visual basic 中,凡是與數(shù)據(jù)有關(guān)的東西就與數(shù)據(jù)類型有關(guān)。
也可聲明任何基本類型的數(shù)組。
詳細信息 關(guān)于更詳細信息,請參閱本章后面的“數(shù)組”部分。在“性能和兼容性的設(shè)計”中還將討論通過選擇數(shù)據(jù)類型來提高應(yīng)用程序的性能。
聲明帶數(shù)據(jù)類型的變量
在使用非 variant 變量之前,必須使用 private、public、dim 或 static 語句將變量聲明為 as type。例如,下列語句分別聲明了 integer、double、string 和 currency 類型的變量:
private i as integer
dim amt as double
static yourname as string
public billspaid as currency
一個聲明語句可將多個聲明組合起來,請看下列語句:
private i as integer,amt as double
private yourname as string,billspaid as currency
private test,amount,j as integer
注意 如果不提供數(shù)據(jù)類型,則指定變量為缺省類型。在上例中,變量 test 和 amount 是 variant 數(shù)據(jù)類型。如果由于其它編程語言的經(jīng)驗使人感到同一個聲明語句中的所有變量都有相同的指定數(shù)據(jù)類型(此例中為 integer),那么,此處的結(jié)果可能會令人感到新鮮。
numeric 數(shù)據(jù)類型
visual basic 支持幾種 numeric 數(shù)據(jù)類型— integer(整型)、long(長整型)、single(單精度浮點型)、double(雙精度浮點型)和 currency(貨幣型)。與 variant 類型相比,numeric 類型占用的存儲空間通常要少。
如果知道變量總是存放整數(shù)(如 12 )而不是帶小數(shù)點的數(shù)字(如 3.57),就應(yīng)當將它聲明為 integer 類型或 long 類型。整數(shù)的運算速度較快,而且比其它數(shù)據(jù)類型占據(jù)的內(nèi)存要少。在 for…next 循環(huán)內(nèi)作為計數(shù)器變量使用時,整數(shù)類型尤為有用。
詳細信息 關(guān)于控制結(jié)構(gòu)的詳細資料,請參閱本章后面的“控制結(jié)構(gòu)概述”。
如果變量包含小數(shù),則可將它們聲明為 single、double 或 currency 變量。currency 數(shù)據(jù)類型支持小數(shù)點右面 4 位和小數(shù)點左面 15 位;它是一個精確的定點數(shù)據(jù)類型,適用于貨幣計算。浮點(single 和 double)數(shù)比 currency 的有效范圍大得多,但有可能產(chǎn)生小的進位誤差。
注意 浮點數(shù)值可表示為 mmmeeee 或 mmmdeee ,其中 mmm 是假數(shù),而 eee 是指數(shù)(以 10 為底的冪)。single 數(shù)據(jù)類型的最大正數(shù)值為 3.402823e+38,或 3.4 乘以 10 的 38 次方;double 數(shù)據(jù)類型的最大正數(shù)值是 1.79769313486232d+308 或 1.8 乘以 10 的 308 次方。用 d 將數(shù)值文字中的假數(shù)部分和指數(shù)部分隔開,就會導致將該值作為 double 數(shù)據(jù)類型來處理。同樣,用這種方式使用 e,也會導致將該值作為 single 數(shù)據(jù)類型來處理。
byte 數(shù)據(jù)類型
如果變量包含二進制數(shù),則將它聲明為 byte 數(shù)據(jù)類型的數(shù)組。(本章后面的“數(shù)組”中將討論數(shù)組)。在轉(zhuǎn)換格式期間用 byte 變量存儲二進制數(shù)據(jù)就可保留數(shù)據(jù)。當 string 變量在 ansi 和 unicode 格式間進行轉(zhuǎn)換時,變量中的任何二進制數(shù)據(jù)都會遭到破壞。在下列任何一種情況下,visual basic 都會自動在 ansi 和 unicode 之間進行轉(zhuǎn)換:
讀文件時

寫文件時

調(diào)用 dll 時

調(diào)用對象的方法和屬性時
除一元減法外,所有可對整數(shù)進行操作的運算符均可操作 byte 數(shù)據(jù)類型。因為 byte 是從 0 – 255 的無符號類型,所以不能表示負數(shù)。因此,在進行一元減法運算時,visual basic 首先將 byte 轉(zhuǎn)換為符號整數(shù)。
所有數(shù)值變量都可相互賦值,也可對 variant 類型變量賦值。 在將浮點數(shù)賦予整數(shù)之前, visual basic要將浮點數(shù)的小數(shù)部分四舍五入,而不是將小數(shù)部分去掉。
詳細信息 關(guān)于 unicode 和 ansi 轉(zhuǎn)換的詳細信息,請參閱“國際化”。
string 數(shù)據(jù)類型
如果變量總是包含字符串而從不包含數(shù)值,就可將其聲明為 string 類型。
private s as string
然后可將字符串賦予這個變量,并用字符串函數(shù)對它進行操作。
s = “database”
s = left (s,4)
按照缺省規(guī)定,string 變量或參數(shù)是一個可變長度的字符串,隨著對字符串賦予新數(shù)據(jù),它的長度可增可減。 也可以聲明字符串具有固定長度??捎靡韵抡Z法聲明一個定長字符串:
string * size
例如,為了聲明一個長度為 50 字符的字符串,可用下列語句:
dim empname as string * 50
如果賦予字符串的字符少于 50 個,則用空格將 empname 的不足部分填滿。如果賦予字符串的長度太長,已不能成為定長字符串,則 visual basic 會直接截去超出部分的字符。
因為定長字符串用空格填充尾部多余的空間,所以在處理定長字符串時可發(fā)現(xiàn),刪除空格的 trim 和 rtrim 函數(shù)是很有用的。
可將標準模塊中的定長字符串聲明為 public 或 private。在窗體和類模塊中,必須將定長字符串聲明為 private。
詳細信息 請參閱語言參考中的“ltrim、rtrim function 和 trim 函數(shù)”。
交換字符串和數(shù)字
如果字符串表示數(shù)值,則可將字符串賦予數(shù)值變量。也可將數(shù)值賦予字符串變量。例如,將命令按鈕、文本框和列表框放置在窗體中。在命令按鈕的 click 事件中輸入下列代碼。運行應(yīng)用程序并單擊命令按鈕。
private sub command1_click ()
   dim intx as integer
   dim stry as string
   stry = “100.23″
   intx = stry                   ‘將字符串傳遞給數(shù)值變量。
   list1.additem cos (stry)     ’將字符串中數(shù)值的余弦值。
                              ‘添加到列表框中。
   stry = cos (stry)           ’將余弦值傳遞給字符串變量。
   text1.text = stry        ‘在文本框中顯示字符串。
end sub
visual basic 會自動強制變量為適當?shù)臄?shù)據(jù)類型。在轉(zhuǎn)換字符串和數(shù)值時要小心;如果傳送字符串中的值不是數(shù)值,則在運行時會出錯。
boolean 數(shù)據(jù)類型
若變量的值只是“true/false”、“yes/no”、“on/off”信息,則可將它聲明為 boolean 類型。boolean 的缺省值為 false。在下面的例子中,blnrunning 是 boolean 變量,存儲簡單的 yes/no 設(shè)置。
dim blnrunning as boolean
   ’查看磁帶是否在轉(zhuǎn)。
   if recorder.direction = 1 then
   blnrunning = true
end if
date 數(shù)據(jù)類型
date 和 time 值既可包含在特定的 date 數(shù)據(jù)類型中,又可包含在 variant 變量中。一般的 date 特性適用于這兩種類型。
詳細信息 請參閱《聯(lián)機手冊》的“高級變量主題”中的“在 variant 變量中存儲 date/time 值”部分。
當其它數(shù)值數(shù)據(jù)類型轉(zhuǎn)換為 date 時,小數(shù)點左邊的值表示 date 信息,小數(shù)點右邊的值則代表 time。午夜為 0,正午為 0.5。負數(shù)表示公元 1899 年 12 月 31 日之前的 date。
object 數(shù)據(jù)類型
object 變量作為 32 位(4 個字節(jié))地址來存儲,該地址可引用應(yīng)用程序中或某些其它應(yīng)用程序中的對象。可以隨后(用 set 語句)指定一個被聲明為 object 的變量去引用應(yīng)用程序所識別的任何實際對象。
dim objdb as object
set objdb = opendatabase (”c:\vb5\biblio.mdb”)
在聲明對象變量時,請試用特定的類,而不用一般的 object(例如用 textbox 而不用 control,或者象上面的例子那樣,用 database 取代 object)。運行應(yīng)用程序之前,visual basic 可以決定引用特定類型對象的屬性和方法。因此,應(yīng)用程序在運行時速度會更快。在“對象瀏覽器”中列舉了特定的類。
當使用其它應(yīng)用程序的對象,并在“對象瀏覽器”中的“類”列表中列舉對象時,不要用 variant 或一般的 object,而應(yīng)聲明對象。這樣可確保 visual basic 能夠識別引用的特定類型對象,在運行時解決引用問題。
詳細信息 關(guān)于創(chuàng)建和指定對象以及對象變量的更詳細信息,請參閱本章后面的“創(chuàng)建對象”部分。
轉(zhuǎn)換數(shù)據(jù)類型
visual basic 提供了幾種轉(zhuǎn)換函數(shù),可用來將值轉(zhuǎn)換成特定數(shù)據(jù)類型。例如,用 ccur 函數(shù)將值轉(zhuǎn)換成 currency 類型:
payperweek = ccur (hours * hourlypay)
轉(zhuǎn)換函數(shù) 將表達式轉(zhuǎn)換成
cbool boolean
cbyte byte
ccur currency
cdate date
cdbl double
cint integer
clng long
csng single
cstr string
cvar variant
cverr error

注意 對目標數(shù)據(jù)類型,傳遞到轉(zhuǎn)換函數(shù)的值必須是有效的,否則會發(fā)生錯誤。例如,如果想把 long 型數(shù)轉(zhuǎn)換成 integer 型數(shù),那么,long 型數(shù)必須在 integer 數(shù)據(jù)類型的有效范圍之內(nèi)。
詳細信息 在聯(lián)機幫助中查找指定的轉(zhuǎn)換函數(shù)。
variant 數(shù)據(jù)類型
variant 變量能夠存儲所有系統(tǒng)定義類型的數(shù)據(jù)。如果把它們賦予 variant 變量,則不必在這些數(shù)據(jù)的類型間進行轉(zhuǎn)換; visual basic 會自動完成任何必要的轉(zhuǎn)換。例如:
dim somevalue      ‘缺省為 variant。
somevalue = “17″   ’somevalue包含 “17″(雙字符的串)。
somevalue = somevalue – 15       ‘現(xiàn)在, somevalue 包含數(shù)值 2。
somevalue = “u” & somevalue   ’現(xiàn)在, somevalue 包含 “u2″ (雙字符的串)。
不必過多關(guān)注 variant 變量中數(shù)據(jù)的類型就可對 variant 變量進行操作,但須避免落入陷阱。
如果對 variant 變量進行數(shù)學運算或函數(shù)運算,則 variant 必包含某個數(shù)。更詳細的信息,請參閱《聯(lián)機手冊》中“高級變量主題”中的“變量中存儲的 numeric 值”部分。

如果正在連接兩個字符串,則用 ” & ” 操作符而不用 ” + ” 操作符。更詳細的信息,請參閱《聯(lián)機手冊》中“高級變量主題”中的“variant 變量中存儲的 strings”部分。
除了可以像其它標準數(shù)據(jù)類型一樣操作外,variants 還包含三種特定值:empty,null 和 error。
empty 值
有時需要知道是否已將一個值賦予所創(chuàng)建的變量。在賦值之前,variant 變量具有值 empty。值 empty 是異于0、零長度字符串 (”") 或 null 值的特定值??捎?isempty 函數(shù)測試 empty 值:
if isempty (z) then z = 0
當 variant 變量包含 empty 值時,可在表達式中使用它;將其作為 0 或零長度字符串來處理,這要根據(jù)表達式來定。
只要將任何值(包括 0、零長度字符串或 null)賦予 variant 變量,empty 值就會消失。而將關(guān)鍵字 empty 賦予 variant 變量,就可將 variant 變量恢復為 empty。
null 值
variant 數(shù)據(jù)類型還可包含一特定值:null。null通常用于數(shù)據(jù)庫應(yīng)用程序,表示未知數(shù)據(jù)或丟失的數(shù)據(jù)。 由于在數(shù)據(jù)庫中使用 null 方法,null 具有某些唯一的特性:
對包含 null 的表達式,計算結(jié)果總是 null。于是說 null 通過表達式“傳播”;如果表達式的部分之值為 null,那么整個表達式的值也為 null。

將 null 值、含 null 的 variant 變量或計算結(jié)果為 null 的表達式作為參數(shù)傳遞給大多數(shù)函數(shù),將會使函數(shù)返回 null。

null 值經(jīng)由返回 variant 數(shù)據(jù)類型的內(nèi)在函數(shù)傳播。
也可用 null 關(guān)鍵字指定 null 值。
z = null
也可用 isnull 函數(shù)測試 variant 變量是否包含 null 值。
if isnull (x) and isnull (y) then
   z = null
else
   z = 0
end if
如果將 null 值賦予 variant 以外的任何其它類型變量,則將出現(xiàn)可以捕獲的錯誤。而將 null 值賦予 variant 則不會發(fā)生錯誤,null 將通過包含 variant 變量的表達式傳播(盡管 null 并不通過某些函數(shù)來傳播)??梢詮娜魏尉哂?variant 返回值的函數(shù)過程返回 null。
除非明確將 null 賦予變量,否則變量不會設(shè)置成 null 值,所以,如果不在應(yīng)用程序中使用 null,就不必書寫測試 null 和處理 null 的程序。
詳細信息 關(guān)于如何在表達式中使用 null 的詳細信息,請參閱語言參考的“null”部分。
error 值
在 variant 中,error 是特定值,指出已發(fā)生的過程中的錯誤狀態(tài)。但是,與其它類型錯誤不同,這里并未發(fā)生正常的應(yīng)用程序級的錯誤處理。因此,程序員或應(yīng)用程序本身可根據(jù) error 值進行取舍。利用 cverr 函數(shù)將實數(shù)轉(zhuǎn)換成錯誤值就可建立 error 值。
詳細信息 關(guān)于如何在表達式中使用 error 值,請參閱語言參考中的“cverr 函數(shù)”部分。關(guān)于錯誤處理的信息,請參閱“調(diào)試代碼和處理錯誤”。有關(guān) variant 數(shù)據(jù)類型的更詳細信息,請參閱《聯(lián)機手冊》中的“高級變量主題”。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Hour 函數(shù) (時間日期函數(shù))
VB Variant數(shù)據(jù)類型
「老葉PHP筆記」009PHP數(shù)據(jù)類型——資源和空值
辨析VBA中的Empty,Null和Nothing
VB編程基本數(shù)據(jù)類型完整剖析
VBA函數(shù)參考
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服