Numéroter les lignes d' un tableau .

gogaulegogaule Membre
15:34 modifié dans API AppKit #1
Bonjour à  tous .
Je cherche toujours à  numéroter les lignes d' un tableau .
Le numérotage (par défaut ) fonctionne , mais les N° commencent à  0 .. pagaille après .. et il ne changent pas en fonction du tri . Placer un N° à  la main .. pas pratique .
J' ai recréé une colonne N° mais je ne parviens pas à  lui faire ajouter 1 ..  reste à  1 ,1 ,1 ,1 ,1 )!
Est-ce possible ? Si oui ; seriez assez sympa de m' aider .
J' ai essayé de placer un morceau de code dans Nouveau Joueur cela ne marche pas .
Merci  ........  D' avance ..
cordialement.

Réponses

  • gogaulegogaule Membre
    15:34 modifié #2
    Re bonjour .
    -(int)numero
    {
    return numero = numero +1;
    }
    Pourquoi la numérotation est descendante = 7, 6, 5, 4, 3, 2, 1 . rajoute 8 ,
    Merci
    Cordialement ?
  • chaps31chaps31 Membre
    15:34 modifié #3
    Pas certains de bien saisir ton problème et en plus je débute en cocoa..  :o   Mais pourquoi ne pas créer une colonne prenant la valuer indexDeLaLigne+1
  • gogaulegogaule Membre
    15:34 modifié #4
    Bonsoir à  tous .
    Je ne trouve pas .
    Les lignes se numérotent à  l' envers  .
    1ere colonne , 1ere ligne 0 : 2 eme colonne , 1ere ligne 1  = très bien
    si je rajoute une ligne 
    1ere colonne , 2eme ligne 0 : 2 eme colonne , 2eme ligne 2  : Cà  ne vas plus
    Si j' écris 7 lignes
    1ere colonne 0 1 2 3 4 5 6 ..... 2eme colonne 7 6 5 4 3 2 1
    Merci .
    Cordialement .
  • schlumschlum Membre
    15:34 modifié #5
    C'est un problème qui n'est pas soluble facilement. Car même si à  l'insertion on met le nombre de lignes comme numéro, ben si on fait des delete on aura des problèmes.
    Ou alors on gère ça comme en base de données avec un uniqID, et y a des trous lors des delete.
  • gogaulegogaule Membre
    15:34 modifié #6
    Re-bonsoir .
    Euh .
    Pourquoi des deletes ..?    ......    Oui si on efface une ligne , il y aura un trou  .
    Pas très grave , car ,lors des inscriptions si on efface une ligne on peut facilement la rajouter , la combler .
    Ce qui est le plus important c' est de conserver le numéro attribué à  chaque participant ou à  chaque équipe de participants , lors des inscriptions .
    Donc est-ce possible de numéroter les lignes a l' endroit ?
    Merci.
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #7
    C'est pas possible de faire un bouton "numéroter" qui attribue les numéros une fois les inscriptions terminées ?

    Comme ça c'est pas compliqué, on fait une boucle, et au [tableau objectAtIndex:i], on attribue le numéro i+1
  • gogaulegogaule Membre
    15:34 modifié #8
    Re-bonsoir.
    Oui un bouton .. pourquoi pas , mais ce n'est pas plus simple qu'ils se numérotent tout seuls .
    Pour le moment je place les N°s à  la main au fur et à  mesure.
    Merci.
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #9
    Comment veux-tu qu'ils puissent se numéroter tout seuls sans indications ?
    Ou alors à  chaque numéro à  donner, il faut parcourir tous les anciens et prendre le maximum +1
  • gogaulegogaule Membre
    15:34 modifié #10
    Re-re-bonsoir .
    Je ne suis pas .
    Les lignes se numérotent toutes seules , non ?
    J' ai mis " une ligne de code " hiiiii .dans Person.h
    (int)numero
    {
    return numero = numero +1 ;
    }
    Ca marche mais les numéros sont inversés. On ne peut pas les faire numéroter dans le bon ordre .
    Merci.
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #11
    Cette ligne de code est une horreur sans nom... Modifier une variable d'instance dans un getter, c'est passible du fouet.  >:)
  • gogaulegogaule Membre
    15:34 modifié #12
    Bonjour .
    Ah . une réponse .
    Oui , pourquoi ?
    Merci
    Cordialement .
  • schlumschlum Membre
    15:34 modifié #13
    parce que "numero = numero + 1" ça modifie "numero"
  • gogaulegogaule Membre
    15:34 modifié #14
    Re-bonjour .
    Oui , mais , n' est-ce pas le résultat espéré , changer le numéro ligne après ligne .
    Ce n' est pas dans Person.h  excuses mais dans Person.m que j' ai placé ce code .
    dans .h j'ai mis int numero  et (int)numero; .
    Allez , 2 lignes d' explications ... Si personne ne consent à  m' aider je ne pigerai  jamais .( Cries pas ......... :why?:
    Oui il y as beaucoup (et même +)  de boulot .)
    Merci.
    Cordialement.
    PS: Si à  chaque tentative , je reçois le fouet ...... :'(
  • schlumschlum Membre
    avril 2008 modifié #15
    Le problème, c'est pas qu'il faut t'aider, mais tout te faire, et c'est très fatiguant à  la longue.

    Ce que tu présentes est une fonction getter, elle n'a pas à  modifier ce qu'elle renvoie.
  • gogaulegogaule Membre
    15:34 modifié #16
    Re-re-re-bonjour.
    Oui Schlum . je te comprends .
    Il est évident que pour toi , réaliser la numérotation d' une ligne ,c' est plus facile , et plus rapide , que de me l' expliquer . (Je comprends très vite , si on m'explique longtemps.)
    Que veut dire getter  setter ?
    Si elle n'a pas a modifier son résultat , c' est pour cela que cela ne marche pas .
    Merci.
    Cordialement.
  • gogaulegogaule Membre
    15:34 modifié #17
    Re .
    getter setter ce sont des donneurs d' ordres , donc qui ne modifie rein , mais demande de modifier  .Exact ?
    Alors comment procéder .
    C' est la seul " commande " qui ai répondu .. Je ne sais comment expliquer .J' ai bidouillé une copie de ton code
    Person.h et .m . La seule solution qui a modifiée les N° de la colonne c' est celle la .Je ne comprends pas comment la numérotation fonctionne . Tu dit qu'elle est indépendante du tableau .. alors la solution ce serait de masquer le Zero ? Mais les n° ne sont pas trié ..
    Pour créer une deuxième colonne capable de ce numéroter seule  .la colonne existe et fonctionne .
    la 1ere déclaration de person.h  int numero dit qu'il y a une colonne N° à  prendre en compte . Exact ?
    Alors ensuite je déclare cette colonne (int)numero; maitenant je plane (pas trouvé d ' exemple ).
    Merci
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #18
    Il faut que tu gères les numéros de la même manière que les autres colonnes.

    Un getter c'est ce qui permet de récupérer la valeur, un setter de la modifier.
  • gogaulegogaule Membre
    15:34 modifié #19
    Bonsoir à  tous,toutes .
    Ce magnifique morceau de code : Person.m
    -(int)numero
    {
    return numero;  // Je récupère numero  //
    }
    -(void)setNumero:(int)numero
    {
    numero = numero +1; // Je lui demande de rajouter 1 ?? //
    }
    Pourquoi il ne marche pas .? .Qu'est-ce qui manque ? Grrrrrr
    Merci
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #20
    Dans setNumero, la variable locale a le même nom que la variable d'instance. C'est donc sur elle qu'est fait l'opération.

    -(void)setNumero:(int)n
    {
    numero = n +1; // Je lui demande de rajouter 1 ?? //
    }
  • gogaulegogaule Membre
    15:34 modifié #21
    Re-bonsoir .
    Oui , numero , numero  : C'est pour cela que cela ne fonctionne pas ?
    Comment faire ?
    Merci.
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #22
    Comme j'ai mis 5 cm au dessus, en changeant le nom de la variable locale.
  • gogaulegogaule Membre
    15:34 modifié #23
    Bonjour Schlum .
    Bonjour à  tous .
    En pleine forme après une bonne nuit d' insomnie ..... :P
    J' ai essayé de changer le nom de la variable ( J' avais déjà  essayé avant.) je reste à  1 ..
    Cela ne marche pas . C' est ch'ment compliqué .Je ne comprend pas .
    Mon raisonnement , écris plus haut est-il exacte ?
    Merci.
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #24
    Quel raisonnement ? Je ne vois qu'un imbroglio d'idées confuses auxquelles je ne comprends que dalle.  ???
  • gogaulegogaule Membre
    15:34 modifié #25
    Re-bonjour.
    :'(   Oui . Je ne parviens toujours pas à  numéroter mes lignes .
    -(void)setNumero:(int)n    -->  Person.h

    -(void)setNumero:(int)n    -->  Person.m
    {
    numero = n +1 ;
    }
    Ce code ??? Bon , pas bon .
    Merci.
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #26
    Ben ce code c'est un getter et un setter (qui ajoute 1 au passage, on se demande pourquoi, mais bon...) classiques, donc oui, on peut dire que c'est bon  ???
  • gogaulegogaule Membre
    15:34 modifié #27
    Re-bonjour.
    Dites - moi . La numérotation des lignes d'un tableau , avec la première colonne , je ne sais pas comment m' expliquer : Il n' y a pas de compteur de lignes , juste un "éclairage" à  chaque sélection de ligne de la numérotation par défaut .. Donc impossibilité de changement  et nécessité d' ajouter une deuxième colonne .
    qui ajoute 1 au passage, on se demande pourquoi
    

    Pour numéroter mes lignes , non . Alors comment ?
    Eh ..  :-\\
    Merci.
    Cordialement.
  • schlumschlum Membre
    15:34 modifié #28
    Dans le code que j'avais fait, cette colonne était totalement indépendante des " participants ", elle indiquait le numéro de colonne du tableau.
    Et le "+1" c'est parce que ça commençait à  0 et que je voulais numéroter à  partir de 1...

    Je vois vraiment pas ce que t'essaies de récupérer avec ce +1  ::)
  • gogaulegogaule Membre
    15:34 modifié #29
    Re-re-bonjour.
    Schlum.
    J' ai rajouté une colonne N° au tableau que tu as codé . Pourquoi :
    Lors des inscriptions d' un concours , nous avons besoin d' attribuer un numéro "d' ordre" aux participants .
    Il est de plus obligatoire que ce n° reste en regard du ou des noms inchangé lors du tirage au sort et du classement
    Dans ton code la ligne Noms des participants ,Partie 1 , Partie 2 ,....Total. Est indépendante des n°s de lignes donc numéros inutiles .
    Je cherche donc à  faire fonctionner cette colonne : Ajouter 1 à  chaque ligne . C' est pour cela que je rajoute 1 .
    Je ne trouve pas comment tu as fait pour numéroter ces lignes (Que je ne parviens pas à  changer.) J' en ai déduit que cette numérotation était , par défaut .
    Le +1 : J' ai lu ... que X=X +1 ajoutais 1 ... donnais 2, 3, etc..
    J' hésite à  me lancer dans des explications , car mon vocabulaire étant limité , j' ai du mal à  m' expliquer . :-\\
    Merci.
    Cordialement .
  • schlumschlum Membre
    15:34 modifié #30
    Ce +1 était par rapport à  la ligne du tableau, donc tu te plantes complètement en le reprenant de cette manière.

    Plutôt qu'un "setNumero", il te faut un "attributeNumero" sans argument qui va chercher quel est le maximum de tous les numéros, et ajouter 1 à  ce maximum.
  • gogaulegogaule Membre
    15:34 modifié #31
    Bonsoir .. à  1h près ..
    Je ne trouve pas comment faire pour numéroter mes lignes ...
    J' arrive à  "numéroter" mais le n° change à  chaque clic ...?? et début à  2 ... et à  l' envers et et ..et alors .. et alors .. Ou est-tu ... Rintintin ?
    Merci
    Cordialement.
Connectez-vous ou Inscrivez-vous pour répondre.