befaint
|||||||||||||
- Tham gia
- 6/1/11
- Bài viết
- 14,581
- Được thích
- 19,782
Bài 15. Stack
(Danh sách các bài viết về VBA xem ở đây Index - Các bài viết về VBA)
Stack là một thư viện nằm trong “System.Collections” của .NET Framework. Cho phép lưu trữ dữ liệu (items) có kích cỡ lớn, rất hữu ích trong các tình huống khi cần xử lý trước nhất những items mà truyền vào Stack sau cùng.
Yêu cầu: Hệ thống phải cài đặt .NET Framework.
1. Khai báo Stack
1.1. Kiểu khai báo sớm
(Không có Tooltip khi gọi Stack, phải thiết lập trong Tools/References)
- Trong cửa sổ VBA, Tools menu, References.
- Tìm và check vào mục “mscorlib.dll” trong cửa sổ References – VBAProject.
Khai báo trong code:
1.2. Kiểu khai báo muộn
(Không có Tooltip khi gọi Stack, không cần thiết lập trong Tools/References).
Khai báo trong code:
2. Các phương thức, thuộc tính
2.1. Push
Thêm một Item vào vị trí trên cùng (top) của Stack.
Item nhận kiểu dữ liệu bất kỳ (kiểu số hoặc chuỗi), giá trị đơn hoặc array.
Ví dụ:
2.2. Count
Trả về số Items có trong Stack.
Ví dụ:
2.3. Peek
Trả về Item trên cùng của Stack và không xóa Item đó.
Ví dụ:
2.4. Pop
Xóa và trả về Item trên cùng của Stack.
Ví dụ:
2.5. Contains
Kiểm tra sự tồn tại của một Item trong Stack. Trả về True nếu Item đó tồn tại, ngược lại trả về False.
Ví dụ:
2.6. ToArray
Sao chép các Items trong Stack vào một mảng (Array). Mảng trả về là mảng một chiều, chỉ số cận dưới của mảng luôn bằng 0, cho dù thiết lập Option Base 1.
Ví dụ:
2.7. Clear
Xóa tất cả các Items có trong Stack.
Ví dụ:
2.8. Clone
Sao chép toàn bộ Stack đã dựng sang một Stack mới.
Ví dụ:
2.9. ToString
Trả về tên đối tượng hiện hành, tức là “System.Collections.Stack”.
Ví dụ:
2.10. GetHashCode
(Danh sách các bài viết về VBA xem ở đây Index - Các bài viết về VBA)
Stack là một thư viện nằm trong “System.Collections” của .NET Framework. Cho phép lưu trữ dữ liệu (items) có kích cỡ lớn, rất hữu ích trong các tình huống khi cần xử lý trước nhất những items mà truyền vào Stack sau cùng.
Yêu cầu: Hệ thống phải cài đặt .NET Framework.
1. Khai báo Stack
1.1. Kiểu khai báo sớm
(Không có Tooltip khi gọi Stack, phải thiết lập trong Tools/References)
- Trong cửa sổ VBA, Tools menu, References.
- Tìm và check vào mục “mscorlib.dll” trong cửa sổ References – VBAProject.
Khai báo trong code:
PHP:
Dim oStack As New Stack
1.2. Kiểu khai báo muộn
(Không có Tooltip khi gọi Stack, không cần thiết lập trong Tools/References).
Khai báo trong code:
PHP:
Dim oStack As Object
Set oStack = CreateObject("System.Collections.Stack")
2. Các phương thức, thuộc tính
2.1. Push
PHP:
oStack.Push Item
Item nhận kiểu dữ liệu bất kỳ (kiểu số hoặc chuỗi), giá trị đơn hoặc array.
Ví dụ:
PHP:
Sub PushMethod()
'Dim oStack As New Stack'
Dim oStack As Object
Set oStack = CreateObject("System.Collections.Stack")
'oStack.Push Item'
oStack.Push 5
oStack.Push "TextA"
oStack.Push ""
End Sub
2.2. Count
PHP:
oStack.Count
Ví dụ:
PHP:
Sub CountProperty()
Dim oStack As Object
Set oStack = CreateObject("System.Collections.Stack")
'oStack.Count'
oStack.Push 5
oStack.Push "TextA"
MsgBox oStack.Count '2'
End Sub
2.3. Peek
PHP:
oStack.Peek
Ví dụ:
PHP:
Sub PeekMethod()
Dim oStack As Object, i As Long
Set oStack = CreateObject("System.Collections.Stack")
'oStack.Peek'
For i = 1 To 10
oStack.Push "Value-" & i
Next i
MsgBox oStack.Peek 'Value-10'
End Sub
2.4. Pop
PHP:
oStack.Pop
Ví dụ:
PHP:
Sub PopMethod()
Dim oStack As Object, i As Long, sValue As String
Set oStack = CreateObject("System.Collections.Stack")
'oStack.Pop'
For i = 1 To 10
oStack.Push "Value-" & i
Next i
sValue = oStack.Pop
MsgBox sValue 'Value-10'
MsgBox oStack.Count '9'
End Sub
2.5. Contains
PHP:
oStack.Contains
Ví dụ:
PHP:
Sub ContainsMethod()
Dim oStack As Object
Set oStack = CreateObject("System.Collections.Stack")
'oStack.Contains'
oStack.Push 5
oStack.Push "TextA"
MsgBox oStack.Contains(5) 'True'
MsgBox oStack.Contains("TextA") 'True'
MsgBox oStack.Contains("TextB") 'False
End Sub
2.6. ToArray
PHP:
oStack.ToArray
Ví dụ:
PHP:
Sub ToArrayMethod()
Dim oStack As Object, i As Long, arr()
Set oStack = CreateObject("System.Collections.Stack")
'oStack.ToArray Mang 1 chieu,cac phan tu trong mang xep nguoc, khong phu thuoc Option Base 1'
For i = 1 To 10
oStack.Push i
Next i
arr = oStack.ToArray
MsgBox arr(0) '10'
End Sub
2.7. Clear
PHP:
oStack.Clear
Ví dụ:
PHP:
Sub ClearMethod()
Dim oStack As Object, i As Long
Set oStack = CreateObject("System.Collections.Stack")
'oStack.Clear'
For i = 1 To 10
oStack.Push i
Next i
oStack.Clear
MsgBox oStack.Count '0'
End Sub
2.8. Clone
PHP:
oStack.Clone
Ví dụ:
PHP:
Sub CloneMethod()
Dim oStack As Object, newStack As Object
Set oStack = CreateObject("System.Collections.Stack")
'oStack.Clone'
oStack.push 20
Set newStack = oStack.Clone
MsgBox newStack.Peek '20'
End Sub
2.9. ToString
PHP:
oStack.ToString
Ví dụ:
PHP:
Sub ToStringMethod()
Dim oStack As Object, sName As String
Set oStack = CreateObject("System.Collections.Stack")
'oStack.ToString'
sName = oStack.ToString
MsgBox sName 'System.Collections.Stack'
End Sub
2.10. GetHashCode
PHP:
oStack.GetHashCode
'(…)'
File đính kèm
Lần chỉnh sửa cuối: