Salut à tous,
Je viens d'opter pour mon application pour une liste chainée plutôt qu'un tableau. Tout marche bien sauf pour la suppression. Je suis sûr que c'est un problème bidon ! J'ai presque honte de poser la question ici
En fait j'ai un type déclaré ainsi :
Et ma procédure de suppression :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 pConseil = ^tpConseil; tpConseil = record val : conseil; suivant : pConseil; end;
Le problème est que si j'ai 4 éléments : toto, titi, tata, tutu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 procedure tConseil.supprimer(noMatricule : integer); var pointeur, precedent : pConseil; trouve : boolean; begin trouve:=false; pointeur:=tabConseil; precedent:=nil; while ((not trouve)and not(pointeur=nil)) do Begin if (pointeur^.val.id=noMatricule) Then trouve:=true else begin precedent:=pointeur; pointeur:=pointeur^.suivant; end; End; if (trouve) then begin If precedent=nil Then tabConseil:=pointeur.suivant Else precedent:=pointeur^.suivant; //dispose(pointeur); dec(nbConseils); end; end;
En supprimant "titi", il m'affichera la liste : toto, tata, tutu, tutu.
Et ensuite si je supprime "toto" : tata, tutu, tutu, tutu.
Comme toujours j'ai épuisé toutes mes sources, sinon je ne viendrais pas vous ennuyer ici avec ça donc si quelqu'un pouvait m'aider à rectifier mon erreur, je lui en serait reconnaissant.
Merci
Partager