![]() |
|
|
|
#1 |
|
Medlem
Registrerad: 2003-09-09
Ort: Stockholm
Inlägg: 302
Lösningar: 4 |
En Class som skapar en stack
Om ni vill ha så bjuder jag på min dags förhöjare, detta räddade iallafall min dag. Skrev den på bussen på vägen hem efter att ha upptäkt ett behov av att ha en stack.
Vist är det kul att bli nöjd över så lite Kod:
Class cls_Stack
Dim oStore
Dim iStoreCount
Public Property Get count()
' Antalet poster i stacken
count = iStoreCount
End Property
Private Sub Initialize()
' Skapar en Dictionary
Set oStore = Server.CreateObject("Scripting.Dictionary")
End Sub
Private Sub Terminate()
' Terminerar Dictionary
oStore = Nothing
End Sub
Public Sub push(value)
' Lägger till överst i stacken
If iStoreCount=0 Then
Initialize()
End If
iStoreCount = iStoreCount + 1
oStore(iStoreCount) = value
End Sub
Public Function pop()
If iStoreCount<1 Then
pop = "#Error# Stack is empty!"
Exit Function
End If
pop = oStore(iStoreCount)
oStore.Remove(iStoreCount)
iStoreCount = iStoreCount -1
If iStoreCount < 1 Then
Terminate()
End If
End Function
End Class
__________________
Fraggel The paranoid Bionic... |
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2005-04-12
Ort: Malmö
Inlägg: 8
Lösningar: 0 |
Synd man inte begriper *S*
|
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2003-09-09
Ort: Stockholm
Inlägg: 302
Lösningar: 4 |
En stack!
Sist in först ut... Push läger till i stacken Pop hämtar ut och raderar värdet i stacken... Kod:
Dim myClass
Set myClass = New cls_Stack
myClass.Push("Test")
myClass.Push("Test1")
myClass.Push("Test2")
myClass.Push("Test3")
myClass.Push("Test4")
myClass.Push("Test5")
myClass.Push("Test6")
Response.Write myClass.count & "<br>"
Response.Write myClass.Pop & "<br>"
Response.Write myClass.count & "<br>"
Response.Write myClass.Pop & "<br>"
Response.Write myClass.count & "<br>"
Response.Write myClass.Pop & "<br>"
Response.Write myClass.count & "<br>"
Response.Write myClass.Pop & "<br>"
Response.Write myClass.count & "<br>"
__________________
Fraggel The paranoid Bionic... |
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108 |
Flyttas från ASP.
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg |
|
|
|
|
|
#5 |
|
Medlem
Registrerad: 2003-09-09
Ort: Stockholm
Inlägg: 302
Lösningar: 4 |
Kod:
Class cls_Stack
'
'
' Property:
' SizeOfStack ; Returns number of items in stack
' Methods:
' Push() ; Adds new value to stack
' Events:
' Pop ; Retrives value from stack
' Kill ; Kills and resets stack
'
Dim oStore
Dim iStoreCount
Public Property Get SizeOfStack()
If iStoreCount<1 Then
SizeOfStack = 0
Else
SizeOfStack = iStoreCount
End If
End Property
Private Sub Initialize()
Set oStore = Server.CreateObject("Scripting.Dictionary")
End Sub
Private Sub Terminate()
If oStore Is Nothing Then
Exit Sub
Else
iStoreCount = 0
Set oStore = Nothing
End IF
End Sub
Public Sub push(value)
If iStoreCount="" Then
Initialize()
End If
iStoreCount = iStoreCount + 1
oStore(iStoreCount) = value
End Sub
Public Sub Kill()
iStoreCount = ""
Terminate()
End Sub
Public Function pop()
If iStoreCount<1 Then
pop = "#Error# Stack is empty!"
Exit Function
End If
pop = oStore(iStoreCount)
oStore.Remove(iStoreCount)
iStoreCount = iStoreCount -1
If iStoreCount<1 Then
Terminate()
End If
End Function
End Class
Krachar inte när man popar en tom stack mer än en gång
__________________
Fraggel The paranoid Bionic... |
|
|
|
|
|
#6 |
|
Moderator
Registrerad: 2002-01-14
Ort: Göteborg
Inlägg: 2 945
Lösningar: 59 |
*
Senast redigerad av Compusa, 2005-05-19 klockan 20:27 |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|