Gestion d'une pile ou file (class)

Soyez le premier à donner votre avis sur cette source.

Vue 13 648 fois - Téléchargée 786 fois

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

Ajouter un commentaire

Commentaires

sensuelamant
Messages postés
5
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
9 septembre 2006
-
FIFO = First In First Out = Pile
LIFO Last In First Out File

Et non l´inverse
cs_Kadra
Messages postés
7
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
18 janvier 2008
-
Bonjour :)
euhhh je sais bien que ce sujet date de 2005 mais le mode Fifo est bien la file et le mode LIFO est la pile
pour s'en souvenir pensez à une pile de jeton, l'element que l'on retire du haute de la pile est toujour le dernier inseré
donc dernier empilé = premier depilé

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.