var a:integer; index:integer; MonTbl:array of ...; //index est le numéro de l'item ke vous voulez supprimer for a:= index+1 to Length(MonTbl)-1 do MonTbl[a-1] := MonTbl[a]; //déplaec tous les éléments après index. SetLength(MonTbl,Length(MonTbl)-1); //reduit le tableau
Merci pour cette petite source tres interressante. Jerome
Salut, ce n'est pas vraiment la bonne méthode bien qu'elle soit fonctionnelle. Delphi a prévu une procedure nommée Move ... pour ce genre d'opération. et voici son utilisation : Il faut deux TLabel et un TButton sur la Fiche {Déclaration du Tableau} Var MonTab : Array Of Integer; {Procedure de suppression d'un élément du tableau} Procedure DelTabItem(Index : Integer); Begin {Si l'index est en dehors des limites du tableau on sort} If (Index < Low(MonTab)) or (Index > High(MonTab)) Then Exit; {On décale les données en une fois ... Move(Source, Dest, Count)} Move(MonTab[Index + 1], MonTab[Index], High(MonTab) - Index + 1 * SizeOf(Integer)); {Mise à jour de la taille du tableau} SetLength(MonTab, High(MonTab)); End; {Initialisation du tableau} procedure TForm1.FormCreate(Sender: TObject); Var I : Integer; begin SetLength(MonTab, 20); For I := Low(MonTab) to High(MonTab) do MonTab[I] := I; end; {Appel de la Procedure de suppression} procedure TForm1.Button1Click(Sender: TObject); Var I : Integer; Str : String; begin {Affichage permettant un contrôle avant suppression} Str := 'Avant : '; For I := Low(MonTab) to High(MonTab) do Str := Str + IntToStr(MonTab[I]) + ', '; Label1.Caption := Str; {Appel de la suppression} DelTabItem(11); {Affichage permettant un contrôle après suppression} Str := 'Après : '; For I := Low(MonTab) to High(MonTab) do Str := Str + IntToStr(MonTab[I]) + ', '; Label2.Caption := Str; end; ps: le niveau Initié est peut être un peut fort ... elle passe donc au niveau débutant ce qui me semble plus juste. @+ Cirec
Bonjour Merci beaucoup pour ce code tres bien fait ! ! Je ne savais pas que l'on pouvait metre deux conditions dans la meme formule ! ! If (Index < Low(MonTab)) or (Index > High(MonTab)) Que du bonheur !! Je vais decortiquer le code et essayer de le comprendre. Au debut ces histoires de tableaux dynamiques me decouragaient mais je dois avouer qu'en persistant c'est vraiment tres facile a comprendre. Jerome
Bonjour a tous. Merci Cirec pour ce tres bon code. Je ne comprends pas le '- Index + 1 * SizeOf(Integer));' Si je ne le mets pas j'ai une erreur . Et le count c'est pour quoi ?? Merci beaucoup Jerome
Saluut Tout Le Monde ... Quelqun Peut M'expliquer Comment supprimer un enregistrement d'un fichier RandomAccessFile en Java ?? J'ai Arrivé a Ajouter des nvelles Lignes les afficher et Rechercher une donnée Mais comment supprimer ou Modifier jaraiive pas SVP Aide ... Merci D'avance ...
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 599 017 membres 275 nouveaux aujourd'hui 15 441 membres club