begin process at 2010 02 10 08:40:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Aide et documentation

 > 

pointeurs!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pointeurs!

lundi 29 juin 2009 à 13:07:06 | pointeurs!

Samou85

Bonjour à tous!

j'ai un tableau de pointeur "T" et et à un moment donné je dois supprimer certaine cases de ce tableau, je voudrais savoir si le fait de faire par exemple:

 Var
Point : ^integer;
T: Array of Point;
i:integer;
Begin
SetLength(T,25);
i:=5;
 T[i]:=T[i+1];
for j:=i+1 to (n-1) do
begin
T[j]:=T[j+1];
end;
 T[n]:=nil;       //tel que "n" est sensé etre l'indice de la dernière case
end;
est ce que le code précédent supprime réellement la case (5) et décale les autres ou bien ça ne marche pas lorsque il s'agit de pointeurs???

Et si ce n'est pas le cas alors comment faire pour supprimer une case de ce tableau de pointeurs???

MERCI d'avance!!!

lundi 29 juin 2009 à 13:21:57 | Re : pointeurs!

cirec

Membre Club Administrateur CodeS-SourceS
Salut,

pour supprimer une valeur et décaler les autres dans un tableau il faut passer par Move !!!

 
@+
Cirec

lundi 29 juin 2009 à 20:05:38 | Re : pointeurs!

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

J'ai comme une sensation de déjà vu ->
http://www.delphifr.com/forum/sujet-POINTEURS_1323028.aspx
A non, c'était "Les pointeurs!" et pas "pointeurs!".

Mais c'était sur les tableaux de pointeurs quand même...

Le truc c'est que quand tu supprime ton pointeur (Le cinquième là, en l'écrasant par le sixième), c'est qu'il faut que tu conserves un moyen de suppression de la valeur pointée. Parce que si tu as fait genre un T[5]:= AllocMem, bin faut que tu puisses faire un FreeMem d'une manière ou d'une autre.
mardi 30 juin 2009 à 00:07:37 | Re : pointeurs!

f0xi

Membre Club Administrateur CodeS-SourceS

il te faut une methode POP/PUSH pour ton tableau :

type
  pPnt = ^Pnt;
  Pnt = integer;
  TArPPnt = array of  pPnt;

const
  SizeOfPnt = SizeOf(Pnt);


function PushPnt(const AValue : Pnt; var ATap : TArPPnt): integer;
var ptr : pPnt;
begin
  result := Length(ATap);
  SetLength(ATap, result+1);
  new(ptr);
  ptr^ := AValue;
  ATap[result] := ptr;
end;

function PopPnt(const Index: integer; var ATap: TArPnt): integer;
var ptr : pPnt;
begin
  result := High(ATap);
  ptr := ATap[Index];
  Dispose(ptr);
  if Index < result then
    CopyMemory(@ATap[Index], @ATap[Index+1], (result-Index+1)*SizeOfPnt);
  SetLength(ATAp, result);
end;


ou encore, deriver un objet TList avec le type pPnt a la place des declaration pointer.







Cette discussion est classée dans : tableau, case, supprimer, integer, pointeurs


Répondre à ce message

Sujets en rapport avec ce message

passer un tableau de variant à un paramètre Integer [ par manudel ] Je déclare un tableau de Variant : tab := VarArrayCreate([0,100],varVariant);que j'alimente.quand il est alimenté, il a cette forme :1,2,3,4,5,6,7,8, suppression dynamique [ par seeev ] Bonjour, j'ai un probleme dont je n'arrive pas à me sortir.je stoque des TSpeedButton dans un tableau de manière à pouvoir les créer, les afficher et Problème de classe dans delphi [ par Ishizaki ] Hello tout le monde, voilà, j'ai un gros problème qui m'a foutu mon oral en l'air ce matin. En fait, j'ai fait un ptit programme sous delphi qui s'oc tableau dynamique à deux dimensions dans une classe [ par Koraluv ] Salut à tous!Je suis débutante en delphi et je voudrai créer une classe qui ai comme attribut un tableau dynamique à deux dimentions de TCellule.je l' Case dynamique [ par Bruto ] Je suis entrain de développer un petit jeu et je dois créer un plateau de cases où l'utilisateur pourra se déplacer. Ces cases seront représentées par supprimer un item dans un array [ par natsou_k ] Salut a tous, j ai un petit probleme.Connaissez vous une procédure qui supprime un item d un tableau svp?j'ai celle-ci mais j'ai des ennui lorsque l'i supprimer tableau dynamique multidimensionnel [ par richarddum ] Salut, Est-il possible de supprimer un tableau dynamique ?  tableau : array of array [0..1] of string; affectation par la commande setlength(tablea tableau a 3 dimension [ par justevero ] Bonjour, je sais parcourir un tableau a 2 dimensions mais a 3 je ne sais pas lorsque je ne connais pas la taille à l'avance en faitj 'aimerais faire 3 Transmettre un tableau ou un integer [ par Francky23012301 ] Salut à tous Comment transmettre une variable d'un serveur à un client. Je m'explique. Le serveur envoye au client un integer i ayant pour valeur 10 Algorithme dans un tableau 2D [ par yopyop2003 ] Bonjour, Je souhaiterais calculer dans un tableau 2D, le nombre de minimal case separant 2 points, sachant que les deplacements horizontal, vertical


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales