webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Artiklar och källkod > Källkod > Script - ASP

Svar
 
Trådverktyg Visningsalternativ
Äldre 2005-04-12, 20:38   #1
Fraggel
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...
Fraggel besöker inte forumet just nu   Svara med citat
Äldre 2005-04-12, 20:47   #2
syclonen
Medlem
 
Registrerad: 2005-04-12
Ort: Malmö
Inlägg: 8
Lösningar: 0
Synd man inte begriper *S*
syclonen besöker inte forumet just nu   Svara med citat
Äldre 2005-04-12, 20:49   #3
Fraggel
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...
Fraggel besöker inte forumet just nu   Svara med citat
Äldre 2005-04-13, 07:05   #4
OveRRidE
Medlem
 
Registrerad: 2001-02-05
Ort: Malmö
Inlägg: 8 507
Lösningar: 108
leende

Flyttas från ASP.
__________________
http://truemaybefalse.blogspot.com - Med en debugger i högsta hugg
OveRRidE besöker inte forumet just nu   Svara med citat
Äldre 2005-04-13, 22:21   #5
Fraggel
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
Lite bättre
Krachar inte när man popar en tom stack mer än en gång
__________________
Fraggel The paranoid Bionic...
Fraggel besöker inte forumet just nu   Svara med citat
Äldre 2005-05-19, 18:24   #6
Compusa
Moderator
 
Compusas avatar
 
Registrerad: 2002-01-14
Ort: Göteborg
Inlägg: 2 945
Lösningar: 59
*

Senast redigerad av Compusa, 2005-05-19 klockan 20:27
Compusa besöker inte forumet just nu   Svara med citat
Svar
webForum > Artiklar och källkod > Källkod > Script - ASP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 09:05.


Powered by: vBulletin Version 3.8.6
Copyright © webForum