IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Lire un élément d'une variable de type Liste [WD16]


Sujet :

WinDev

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut Lire un élément d'une variable de type Liste
    Bonjour à tous !

    Dans la série "j'ai un trou de mémoire" initiée par lololebricoleur (http://www.developpez.net/forums/d13.../trou-memoire/)...

    Après avoir utilisé les types de variables File et Pile, j'essaie maintenant de voir l'intérêt du type Liste et comment l'utiliser.

    Et là je me demande quelle fonction (ou opérateur) il faut utiliser pour lire le premier élément d'une variable de type liste, et par extension comment lire un élément à une position quelconque.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MaListe est une Liste d'entiers = [1,2,3,4,5]
    nValeur est un entier
     
    nValeur = MaListe[3]	// lire la valeur du 3ème élément, erreur de compilation
    L'opérateur [] ne fonctionne pas, et je ne trouve pas de fonction Lire() ou équivalent...

    Savez-vous quelle est la fonction qui donne un accès direct à un élément d'une liste, par sa position ?

    Ou bien même, comment lire le premier ou le dernier élément ?

    (sans faire un parcours POUR TOUT... qui n'est pas efficace)

    Merci.

    P.S. bien sûr j'ai regardé dans l'aide avant de poster.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour à tous !

    Je me demande si certains d'entre vous utilisent les types de variables File, Pile Liste du WLangage,
    ou bien si vous utilisez des solutions alternatives:
    • type tableau,
    • type tableau associatif,
    • classe programmée "sur mesure",
    • autre...

    J'aimerai bien connaître la tendance chez les développeurs Windev et, si vous préférez une solution alternative, pourquoi ?

    Merci de participer à un retour d'information que j'espère instructif.

  3. #3
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    Le type Liste visiblement permet d'insérer/supprimer des éléments pendant un parcours, c'est la seule différence que je vois par rapport aux types Pile et File.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ListeTest est une Liste d'entiers = [1,5,10]
    POUR TOUT nValeur DE W_ListeTest
    	SI nValeur = 5 ALORS Insère(ListeTest,AvantElémentCourant,3)
    FIN
    C'est à une variable à manipuler dans son ensemble, lors d'un parcours. Pas d'accès à un élément en direct, pour ça il faut choisir un tableau

    Je n'ai jamais utilisé mais j’essaierai de me poser la question au prochain besoin d'un tableau

    De manière générale j'utilise des tableaux de structures ou d'objets, les tableaux associatifs sont bien pratiques aussi

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    hpascal, merci pour ta réponse.
    Citation Envoyé par hpascal Voir le message

    Le type Liste visiblement permet d'insérer/supprimer des éléments pendant un parcours, c'est la seule différence que je vois par rapport aux types Pile et File.
    [...]
    C'est à une variable à manipuler dans son ensemble, lors d'un parcours. Pas d'accès à un élément en direct, pour ça il faut choisir un tableau
    Euh... "trop nul"...
    Voilà le commentaire que ça m'inspire... et

    Non mais franchement, quel est l'intérêt d'implémenter un type de données et de le doter d'instructions trop limitées !?

    On croirait un type "basique" à utiliser seulement pour des exercices d'algorithmique pour programmeur débutant !
    Dans la pratique, c'est un type de données "bidon" !

    Si ça se passait sous mes ordres, je qualifierai "d'incompétent" le responsable de ce choix chez PC SOFT... mais j'imagine que ce type de données "bidon" sert surtout à incrémenter le "compteur des nouveautés".

    Pour ceux qui se demandent pourquoi je suis virulent, je vous propose de comparer avec le type (classe) List du langage Java.
    Ainsi vous comprendrez quel est le minimum à fournir avec ce type de données:
    http://docs.oracle.com/javase/1.4.2/...util/List.html

    C'est pareil pour le C++:
    http://www.cplusplus.com/reference/list/list/

    Citation Envoyé par hpascal Voir le message

    Je n'ai jamais utilisé mais j’essaierai de me poser la question au prochain besoin d'un tableau

    De manière générale j'utilise des tableaux de structures ou d'objets, les tableaux associatifs sont bien pratiques aussi
    Moi je vais oublier le type Liste du WLangage qui dans la pratique ne sert à rien.
    Mieux vaut encore utiliser un tableau: accès direct aux éléments, parcours sur tout ou partie, insertion d'un élément ou d'un autre tableau....

  5. #5
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Citation Envoyé par OnePoint Voir le message
    ...Pour ceux qui se demandent pourquoi je suis virulent, je vous propose de comparer avec le type List du langage Java.
    Ainsi vous comprendrez quel est le minimum à fournir avec ce type de données:
    http://docs.oracle.com/javase/1.4.2/...util/List.html

    C'est pareil pour le C++:
    http://www.cplusplus.com/reference/list/list/


    Moi je vais oublier le type Liste du WLangage qui dans la pratique ne sert à rien.
    Mieux vaut encore utiliser un tableau: accès direct aux éléments, parcours sur tout ou partie, insertion d'un élément ou d'un autre tableau....
    C'est parce qu'il gardent des choses sous le bras à ajouter dans les centaines de "nouveautés" de la version suivante
    Une fonction de plus pour le type liste ça compte pour 3 nouveautés (1 pour windev, 1 pour webdev, 1 pour windev mobile), 1 propriété de plus c'est pareil ...

    Par contre, si quelqu'un a eu une utilité à ce type Liste, qu'il se manisfeste, ça nous éclairera peut être

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/05/2014, 12h24
  2. Réponses: 4
    Dernier message: 22/01/2013, 11h01
  3. Tmap - initialiser une variable de type List
    Par jeanphi45 dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 23/03/2012, 21h12
  4. Trier une variable de type List(Of T)
    Par Kropernic dans le forum VB.NET
    Réponses: 9
    Dernier message: 23/09/2010, 14h01
  5. lire une variable du type pointeur
    Par timtima dans le forum Débuter
    Réponses: 6
    Dernier message: 16/12/2007, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo