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

Delphi Discussion :

concaténer des élements contigus dans une liste


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 69
    Points
    69
    Par défaut concaténer des élements contigus dans une liste
    Bonjour,

    J'ai un objet (dataset) qui me renvoie les informations sous la forme suivante (pous simplifier):
    début a fin c
    début d fin e
    début e fin g

    je voudrais avoir au final
    début a fin c
    début d fin g (car fin de la 2e ligne = début de la 3e ligne)

    Les éléments contigus peuvent être n'importe où dans la liste et il peut y en avoir un nb indéterminé.

    Comment dois-je m'y prendre ? Je parcours ma liste mais je n'arrive à rien de concret...

    merci
    Isa
    Isachat

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Une méthode assez bourrine consiste à créér en paralléle avec les relations un chainage :

    Au départ :
    1 : début a fin c pointesur rien
    2 : début d fin e pointesur rien
    3 : début e fin g pointesur rien
    4 : début g fin h pointesur rien
    ...

    Prendre chaque fin et vérifier s'il existe un début qui correspond :
    1 : début a fin c pointesur rien
    2 : début d fin e pointesur 3
    3 : début e fin g pointesur 4
    4 : début g fin h pointesur rien
    ...

    Il suffit ensuite de parcourir la liste des relations et de traiter celles qui ont des chainages non vides en supprimant tous les éléments chainés sauf la tête de liste dont on modifiera la "fin".

    Lors du traitement du 2 : il existe un chainage qui pointe vers 3, puis vers 4, on garde 2 et on fait fin(2)=fin(4)=h, et on obtient :
    1 : début a fin c pointesur rien
    2 : début d fin h pointesur rien
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 69
    Points
    69
    Par défaut
    Désolée mais je n'y comprends rien...
    Comment déterminer les relations du chaînage ?
    Pour l'instant je parcours ma boucle en testant si début = fin de la ligne précédente, mais en faisant de la sorte, je n'arrive à récupérer correctement que le 1er élément, j'oublie sûrement quelquechose quelquepart...

    Isa
    Isachat

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Apparament, si les éléments contigus sont consécutifs, le problème est donc plus simple que je ne le pensais : pas besoin de chainage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ilast:=0 ;
    for i:=1 to high(Debut) do 
        if Fin[ilast]=Debut[i]
          then begin Fin[ilast]:=Fin[i] ; Debut[i]:=-1 ; end 
          else ilast:=i ;
    // A la fin, supprimer les éléments dont le début a été marqué à -1 
    ...
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. Alignement des icones placés dans une liste
    Par barbiche dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 05/04/2007, 16h10
  2. Réponses: 12
    Dernier message: 02/03/2007, 11h33
  3. Insérer des check buttons dans une list box
    Par cecile900 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 09/01/2007, 12h10
  4. [VBA-E] Affichage captions des chekbox actifs dans une list box
    Par accro-macro dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 17/10/2006, 13h42
  5. Réponses: 13
    Dernier message: 01/08/2006, 16h59

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