ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

La classe collection introduite en VFP8   



L'auteur

Christophe Chenavier
France France
Membre Simple
# 0000000023
enregistré le 14/10/2004
http://www.corwin.fr
58 ans
CHENAVIER Christophe
80440 BOVES
de la société Corwin
Fiche personnelle


Note des membres
pas de note

Contributions > 01 - PRG : Programmation

La classe collection introduite en VFP8
# 0000000387
ajouté le 05/01/2007 07:27:34 et modifié le 05/01/2007
consulté 8691 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0
VFP 8.0

Description
Quelques lignes de code décrivant les principales opérations possibles avec l'objet collection.
Code source :
oClients = CREATEOBJECT("COLLECTION")

FOR I = 1 TO 3
   oObjet = CREATEOBJECT("Client"TRANSFORM(I))
   oClients.Add(oObjet)
ENDFOR

*** Nombre d'éléments
MessageBox(oClients.Count)

*** Lecture des éléments de la collection
*** dans l'ordre de création
FOR EACH oClient IN oClients
    MessageBox(oClient.cClientId)
ENDFOR

*** Lecture des éléments de la collection
*** dans l'ordre inverse de création
oClients.KeySort = 1
FOR EACH oClient IN oClients
    MessageBox(oClient.cClientId)
ENDFOR

*** Accès direct (via Index) à un élément de la collection
MessageBox(oClients.Item(1).cClientId)

*** Suppression d'un élément
oClients.Remove(1)
MessageBox(oClients.Item(1).cClientId)

*** Suppression de tous les items de la collection
oClients.Remove(-1)


*** Il est aussi possible de gérer une collection
*** avec une clé unique (chaine de caractère uniquement)

oClients = CREATEOBJECT("COLLECTION")
FOR I = 1 TO 3
   oObjet = CREATEOBJECT("Client"TRANSFORM(I))
   oClients.Add(oObjet, TRANSFORM(I))
ENDFOR


*** Lecture des éléments de la collection
*** dans l'ordre croissant de la clé
oClients.KeySort = 2
FOR EACH oClient IN oClients
    MessageBox(oClient.cClientId)
ENDFOR


*** Lecture des éléments de la collection
*** dans l'ordre décroissant de la clé
oClients.KeySort = 3
FOR EACH oClient IN oClients
    MessageBox(oClient.cClientId)
ENDFOR


*** Accès direct (via la clé) à un élément de la collection
MessageBox(oClients.Item("3").cClientId)


*** Suppression d'un élément
oClients.Remove("1")
MessageBox(oClients.GetKey("1"))



DEFINE CLASS Client AS SESSION

       cClientId = ""
       dDateTime = {}

       PROCEDURE Init
           LPARAMETERS cClientId

           THIS.cClientId = M.cClientId
           THIS.dDateTime = DATETIME()
       ENDPROC
ENDDEFINE


Commentaires
le 05/01/2007, eddymaue a écrit :
ce bout de code ne fonctionne pas
*** Suppression d'un élément
oClients.Item("1") = NULL && pour libérer l'objet
oClients.Remove("1")
MessageBox(oClients.Item("1").cClientId)

et ca non plus

*** Suppression d'un élément
oClients.Item(1) = NULL && pour libérer l'objet



le 05/01/2007, Christophe Chenavier a écrit :
Un copier/coller malheureux...c'est corrigé.

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3