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"
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.