+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Discussion: Suite logique Tableau

  1. #1
    Membre régulier
    Inscrit en
    avril 2008
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 24

    Informations forums :
    Inscription : avril 2008
    Messages : 353
    Points : 86
    Points
    86

    Par défaut Suite logique Tableau

    Bonjour, je ne savais pas comment titrer cette discussion donc j'espère que ça sera cohérent avec mon problème.
    Je récupère un tableau (un dataReader plus précisément) qui contient une suite de nombre de ce type :
    1ère ligne : 2-8-23-27
    2ème ligne : 2-8-16-27
    3ème ligne : 2-8-17-27
    le 2 correspond au niveau 1 du menu, le 8 deuxième niveau du menu, etc...

    Je voudrai trouver un algo qui convertit ce tableau en :
    1ère ligne : 2-8-23-27
    2ème ligne : ----16-27
    3ème ligne : -----17-27
    Le cadre de cet algo, c'est créé un menu déroulant suite à ce tableau.
    Le temps est le pire enemi de l'homme

  2. #2
    Expert Confirmé
    Homme Profil pro Benoît
    Inscrit en
    février 2003
    Messages
    1 738
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoît
    Âge : 33
    Localisation : Belgique

    Informations forums :
    Inscription : février 2003
    Messages : 1 738
    Points : 2 905
    Points
    2 905

    Par défaut

    En gros tu fais une classes.
    Code :
    1
    2
    3
    4
    5
    Menu 
    {
    string ReelPlace 
    string ToDisplay
    }
    une boucle qui remplis une List<Menu>
    Code :
    1
    2
    lstMenu[i].ReelPlace = dr[i]
    lstMenu[i].ToDisplay = ToDisplay(dr[i],dr[i-1]
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ToDisplay(string currentMenu,string previousMenu)
    {
    string returnValue=currentMenu; 
    List<string> lstPreviousMenu = previousMenu.Split("-").ToList();
    List<string> lstcurrentMenu = previousMenu.Split("-").ToList();
    i=0;
    while(i<lstPreviousMenu.Count && lstPreviousMenu [i] == lstcurrentMenu[i]) lstcurrentMenu[i]="-";
    string returnValue = string.Empty;
    foreach (string str in lstCurrentMenu)
    {
    if (returnValue != string.Empty) returnValue += "-";
    returnValue +=str ;
    }
    return returnValue ;
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  3. #3
    Membre habitué Avatar de zhouyu
    Homme Profil pro Loïc
    Étudiant
    Inscrit en
    octobre 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Nom : Homme Loïc
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2009
    Messages : 87
    Points : 129
    Points
    129

    Par défaut

    Salut.
    L'algo ne me paraît pas compliqué.
    1) ton tableau à au moins 2 lignes (sinon ça ne sert à rien^^)
    2) tu parcours chaque ligne en commençant par la 2eme
    3) tu regardes si les valeurs sont égales à la valeur du dessus

    4.1) si c'est égale : tu supprimes la valeur (tu mets ton -)
    tu continues avec la valeur suivante
    4.2) sinon : tu t'arrêtes pour cette ligne et tu recommences à la ligne suivante

  4. #4
    Membre régulier
    Inscrit en
    avril 2008
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 24

    Informations forums :
    Inscription : avril 2008
    Messages : 353
    Points : 86
    Points
    86

    Par défaut

    Bonjour , cet algo je l'ai compris mais j'ai oublié de vous dire que je suis dans le cadre de création d'un menu donc j'ai des UL et LI qui englobent certaines parties du script. Sinon je garde vos scripts et je vais essayer de les "acclimater" à ma situation
    Merci
    Le temps est le pire enemi de l'homme

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •