VB2013內建函數:內建函數指的是事先設計好的各種函數,藉由這些函數可以幫助我們快速處理數字、文字、日期等資料…
數值函數:用來計算數值
Visual Basic 6 中的數學函式在 .NET Framework 中已由 System.Math 類別 (Class) 中的對等方法所取代。
數字函數 | 功能說明 | 範例 | 範例結果 |
---|---|---|---|
math.ABS(N) | 傳回N的絕對值 | math.ABS(-2) | 2 |
CInt(N) | 轉為整數型態(四捨六入五成雙) | CInt(2.5) CInt(2.51) CInt(3.5) CInt(-2.5) CInt(-2.51) CInt(-3.5) | 2 3 4 -2 -3 -4 |
Int(N) | 傳回等於或小於N的最大整數 | Int(2.4) Int(-2.4) | 2 -3 |
Fix(N) | 傳回N的整數部份,小數直接捨去 | Fix(2.4) Fix(-2.4) | 2 -2 |
math.Round(N,P) | 將N取四捨五入到小數後第P位後傳回結果(四捨六入五成雙) | math.Round(5/3,2) math.Round(1.665,2) | 1.67 1.66 |
Math.Ceiling(N) | 傳回大於或等於指定之十進位數字的最小整數值。(天花板值) | math.Ceiling(7.03) math.Ceiling(-7.03) | 8 -7 |
Math.Floor(N) | 傳回小於或等於指定的十進位數字的最大整數。(地板值) 效果等同 Int(N) | math.Floor(7.03) math.Floor(-7.03) | 7 -8 |
Math.Truncate(N) | 計算指定的十進位數字的整數部分。效果等同 Fix(N) | math.Truncate(7.03) math.Truncate(-7.03) | 7 -7 |
Rnd(N) | 傳回1個>=0且<1隨機亂數(即 0≦ Rnd <1) | Int(Rnd*10)+5 | 傳回5~14中任一整數 |
Randomize | 設定亂數種子,與Rnd配合使用 | Randomize Int(Rnd*10)+5 Int(Rnd*2) Int(Rnd*6)+1 Int(Rnd*13)+1 Int(Rnd*101) | 傳回5~14中任一整數 模擬丟銅板正反面0,1 模擬丟骰子1~6點 模擬樸克牌1~13點 模擬成績0~100分 |
math.Sqrt(N) | 傳回N的根號 | math.Sqrt(4) | 2 |
math.Sign(N) | 判斷數字N的正負符號 | math.Sign(4) math.Sign(0) math.Sign(-4) | 1 0 -1 |
math.Log(N) | 傳回自然對數值 | math.Log(2)/math.Log(10) | 0.301029995663981 |
math.Exp(N) | 自然對數e的N次方 | math.Exp(1) | 2.71828182845905 |
math.Pow(x, y) | 傳回 x^y | math.Pow(2,10) | 1024 |
math.Max(a, b) | 傳回 a, b 之最大值 | math.Max(2, 3) | 3 |
math.Min(a, b) | 傳回 a, b 之最小值 | math.Min(2, 3) | 2 |
math.Pi | 傳回圓周率常數pi | math.Pi | 3.1415926535897931 |
math.E | 傳回自然對數e | math.E | 2.7182818284590451 |
UBound(A,N) | 傳回陣列A中所指定維度N的最高可用註標。N省略,則表示第1維。 | dim data(10,3) as integer UBound(data) UBound(data,2) | 10 3 |
LBound(A,N) | 傳回陣列A中所指定維度N的最低可用註標。N省略,則表示第1維。 | dim data(10,3) as integer LBound(data) LBound(data,2) | 0 0 |
math.Sin(N) math.Cos(N) math.Tan(N) | 傳回N的正弦值…等,N的單位是弳度,不是角度 範列中的PI=3.14159265358979 | math.Sin(PI/6) | 0.5 |
字串函數:用來處理文字
字串函數 | 功能說明 | 範例 | 範例結果 |
---|---|---|---|
Chr(N) | 傳回系統內定字元碼為N的字元 | Chr(65) | "A" |
Asc(S) | 傳回字串S第1個字元的系統內定字元碼 | Asc("A") Hex(Asc("王")) | 65 FFFFA4FD 'Big-5 |
ChrW(N) | 傳回Unicode碼為N的字元 | ChrW(65) | "A" |
AscW(S) | 傳回字串S第1個字元的Unicode碼 | AscW("A") Hex(AscW("王")) | 65 738B 'Unicode |
Hex(N) | 轉為16進位字串 | Hex(16) | "10" |
Oct(N) | 轉為8進位字串 | Oct(16) | "20" |
Val(S) | 將S字串轉成數值 | Val("123") Val("52A") Val("xxx") | 123 52 0 |
Str(N) | 將數字N轉換成字串型態 注意:正數前會有一個空白 | Str(23) Str(-43) | "△23" △表示空白字元 "-43" |
Len(S) | 取得字串S的長度(字元數) | Len("ABCDE") | 5 |
Left(S,N) | 取得字串S左邊的N的字元 | Left("ABCDE",2) | "AB" |
Right(S,N) | 取得字串S右邊的N的字元 | Right("ABCDE",2) | "DE" |
Mid(S,M,N) | 從字串S第M個字元開始取得N個字元 | Mid("ABCDE",2,3) | "BCD" |
UCase(S) | 將字串S的所有英文小寫字母轉成大寫字母 | UCase("AbcDe") | "ABCDE" |
LCase(S) | 將字串S的所有英文大寫字母轉成小寫字母 | LCase("AbcDe") | "abcde" |
Trim(S) LTrim(S) RTrim(S) | 去除字串S兩側的空白字元(左側、右側) | Trim("△△A△B△△") LTrim("△△A△B△△") RTrim("△△A△B△△") | "A△B" "A△B△△" "△△A△B" |
StrDup(N,S) | 傳回N個S字元,S可以是字元,也可以是ASCII碼 | StrDup(4,"A") | "AAAA" |
StrReverse(S) | 將字串反過來 | StrReverse("ABCDE") | "EDCBA" |
Rset(S, n) | 傳回靠右對齊的字串,其中包含調整為指定之長度的指定字串。 | Rset(2.3, 5) | "△△2.3" |
Lset(S, n) | 傳回靠左對齊的字串,其中包含調整為指定之長度的指定字串。 | Lset(2.3, 5) | "2.3△△" |
InStr(S,F) | 從字串S中尋找F字串,若找到則傳回S字串中F出現的位置,若找不到則傳回0 | InStr("ABCDABCD","D") InStr("ABCDEF","CC") | 4 0 |
InStr(m,S,F) | 與上例相同,但指定從字串S的第m個字元開始尋找,而不是從頭找 | InStr(6,"ABCDABCD","D") InStr(6,"ABCDABCD","Ab") | 8 0 |
InStrRev(S,F,m) | 傳回某個字串F在另一個字串s中第一次出現的位置,從字串的右邊第m個字元開始尋找開始。 m省略則從頭找。 | InStrRev("ABCDABCD","D") InStrRev("ABCDABCD","D",7) | 8 4 |
Replace(S,F,R) | 從字串S中尋找字串F,並以字串R取代。 | Replace("ABCDE","BCD","xxx") | "AxxxE" |
Join(X,a) | 合併陣列為 以a符號 分隔的字串 。 | x(0) = "Hello" x(1) = "World" Y= join(x,"-") | Y = "Hello-World" |
Split(X,a) | 以a為分隔符號,將X字串打散成陣列 。 | X = "Hello-World" Y = split(X,"-") | Y(0)="Hello" Y(1) = "World" |
Format(S,F) | 將字串S依據指定的格式F重新產生字串 左側例子中 Time是時間函數,傳回目前的時間 Date是日期函數,傳回目前的日期 D=#1/27/2001 5:04:23 PM# 詳細說明 | Format(Now(), "Long Time") Format(Now(), "Long Date") Format(Now(), "D") Format(D, "h:m:s") Format(D, "hh:mm:ss tt") Format(D, "dddd, mmmm d yyyy") Format(D, "HH:mm:ss") Format(5365.6, "##,##0.00") Format(534.9, "###0.00") Format(2.5, "0.00%") | 下午 03:09:46 2016年11月26日 2016年11月26日 5:4:23 05:04:23 PM Saturday, Jan 27 2001 17:04:23 5,365.60 534.90 250.00% |
- 日期時間函數:用來處理日期與時間。
日期時間函數 功能說明 範例 範例結果 Now 傳回目前的日期及時間,不用加任何參數
(Now 等於 Date 加上 Time ?)Now 2007/10/12 上午 09:24:44 Date 傳回目前的日期,不用加任何參數 Date 2007/10/12 Time 傳回目前的時間,不用加任何參數 Now 上午 09:24:44 Year(D) 依指定的時間參數(D),傳回年 Year(Now) 2007 Month(D) 依指定的時間參數(D),傳回月份 Day(Now) 10 MonthName(M) 依指定的月份數字參數(M),傳回月份的名稱 MonthName(1) 一月 Day(D) 依指定的時間參數(D),傳回1~31的日期 Day(Now) 12 Hour(T) 依指定的時間參數(Time),傳回小時 Hour(Now) 9 Minute(T) 依指定的時間參數(Time),傳回分鐘 Month(Now) 24 Second(T) 依指定的時間參數(Date),傳回秒數 Second(Now) 44 Weekday(D) 傳回包含表示週中星期幾的 Integer 值。
星期日 - 1 ~ 星期六 - 7Weekday(Date) WeekdayName(N) 傳回包含指定星期名稱的 String 值 WeekdayName(1)
WeekdayName(7)星期日
星期六 - Array 類別常用的屬性與方法:
Array 類別常用的屬性 功能說明 範例 範例結果 Length 取得代表 Array 所有維度的元素總數。 myArr.Length Rank 取得 Array 之以零為起始的陣列維度。 myArr.Rank Array 類別常用的方法 功能說明 範例 範例結果 GetLength() 方法 取得陣列指定維度之元素數目 r1=myArr.GetLength(0) r1為 myArr 第一個維度元素的個數 GetUpperBound 方法 取得陣列某一維度的最大註標(上限)
也可以使用 Ubound() 函數u1=myArr.GetUpperBound(0)
u1=Ubound(myArr,1)u1為 myArr 第一個維度最大註標 GetLowerBound 方法 取得陣列某一維度的最小註標(下限)
也可以使用 Lbound() 函數u1=myArr.GetLowerBound (0)
u1=Lbound(myArr,1)u1為 myArr 第一個維度最小註標 Array.Sort() 1.由小到大排序整個一維 Array 中的元素。 這個方法使用 QuickSort 快速排序演算法。
2. 根據第一個 Array 中的索引鍵,排序一對一維的 Array 物件 (一個物件包含索引鍵,另一個物件包含對應的項目)。Array.Sort(myArr)
Array.Sort(myKeys, myValues)Array.Reverse() 反轉整個一維 Array 中的元素順序。 Array.Sort(myArr)
Array.Reverse(myArr)myArr內容由大到小排序 Array.IndexOf() 循序搜尋指定的物件,並傳回一維 Array 內從指定的索引延伸至最後一個元素的元素範 圍中,第一個相符項目的索引。當找不到 value 時,通常會傳回 -1。Aarry資料可以不必先排序。語法:
Array.IndexOf(陣列名, 查詢資料 [, 起始註標] [, 查詢距離]))Array.IndexOf(myArr, myString, 6, 5) Array.BinarySearch() 在整個一維已排序的 Array 中使用二元搜尋法搜尋特定的元素。如果找到 資料,則傳回為指定 array 中的註標myIndex ;如果沒有找到則傳回負值。語法:
Array.BinarySearch(陣列名, 查詢資料)Array.Sort(myArr)
myIndex =Array.BinarySearch(myArr, myObject)先排序
再用二元搜尋Array.Copy() 陣列的複製 請查詢 Array Array.Clear() 清除陣列元素的值。這個方法只清除元素的值;不會刪除元素本身。 請查詢 Array Array.Resize() 變更陣列大小。以指定之大小配置新的陣列、從舊的陣列中將元素複製到新陣列中,然後以新的陣列取代舊的陣列。想做動態宣告時很有用。 Array.Resize(myArr, myArr.Length + 5) 將myArr加大5個元素
- ArrayList 類別常用的屬性與方法: 增加、移除陣列元素很方便
Array 類別常用的屬性 功能說明 範例 範例結果 宣告 Dim myAL As New ArrayList() Capacity 取得或設定 ArrayList 能夠包含的元素數 myArr.Capacity Count 取得在 ArrayList 中實際包含的元素數。 myArr.Count
ArrayList 類別常用的方法 | 功能說明 | 範例 | 範例結果 |
---|---|---|---|
Add 方法 | 將物件加入 ArrayList 的末端。 | myAL.Add("The") myAL.Add("quick") | |
Clear 方法 | 將所有元素從 ArrayList 移除。 | myAL.Clear | |
Remove 方法 | 從 ArrayList 移除特定物件之第一個符合的元素。 | myAL.Remove("The") | |
RemoveAt 方法 | 移除 ArrayList 的指定索引處的元素。 | myAL.RemoveAt(5) | |
Insert 方法 | 將元素插入 ArrayList 中的指定索引處。 | ArmyAL.Insert(3, "over") myAL.Insert(myAL.IndexOf("dog"), "lazy") |
沒有留言 :
張貼留言