Gestion d'une pile ou file (class)

Description

Class permetant la gestion d'une file(LIFO) ou pile(FIFO)

Source / Exemple :


Option Explicit
Dim rsPile As Recordset

Private Sub Class_Initialize()
    ' crée l'objet recordset
    Set rsPile = New Recordset
    ' genere le format de la table
    rsPile.Fields.Append "Value", adVariant
    ' ouvre la table
    rsPile.Open
End Sub

Private Sub Class_Terminate()
    ' Ferme la table
    rsPile.Close
    ' Supprime l'objet recordset
    Set rsPile = Nothing
End Sub

Public Sub Empile(strValue As String)
    ' Ajoute un element au sommet de la pile (ou de la file)
    rsPile.AddNew "Value", strValue
End Sub

' dans le cas d'une pile : FIFO (First Input First Output)
Public Function Depile() As String
    Depile = vbNull
    ' si la pile n'est pas vide
    If rsPile.RecordCount <> 0 Then
        ' prend le premier élément empilé
        rsPile.MoveLast
        Depile = rsPile.Fields("Value").Value
        ' et le supprime de la pile
        rsPile.Delete
    End If
End Function

' dans le cas d'une file : LIFO (Last Input First Output)
Public Function Defile() As String
    Defile = vbNull
    ' si la file n'est pas vide
    If rsPile.RecordCount <> 0 Then
        ' prend le premier élément empilé (enfilé)
        rsPile.MoveFirst
        Defile = rsPile.Fields("Value").Value
        ' et le supprime de la pile
        rsPile.Delete
    End If
End Function

Conclusion :


Attention il faut rajouter la reference "Microsoft ADO 2.5"

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.