Table dynamique

Signaler
Messages postés
12
Date d'inscription
samedi 29 novembre 2003
Statut
Membre
Dernière intervention
4 avril 2007
-
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
-
Je voudrais mettre une string Grid a deux dimension dans une table dynamique à deux dimension .

Est possible, si oui comment je pourrais le faire?

Merci d'avance

Greg.

6 réponses

Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello,



Quand tu dis une table c'est une table de base de données ? Si oui quelle base de données utilises tu?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
12
Date d'inscription
samedi 29 novembre 2003
Statut
Membre
Dernière intervention
4 avril 2007

Non ce n'est pas une base de donnée mais on dois utiliser un tableau dynamique pour enregistrer les données mais je vais essayer un array of array of string pour voir si ça marche
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
type
TEnreg = array [0..15] of string;
TDblArray = array[0..15] of TEnreg;
var
Datas : TDblArray;

Après:

Datas[5][6]

===========
Validez les réponses si ok...

ViewVite : HTML
Messages postés
12
Date d'inscription
samedi 29 novembre 2003
Statut
Membre
Dernière intervention
4 avril 2007

c'est gentil de me donner ce code mais le problème c que c'est deux tableaux statiques. et pour mon projet de fin d'année on me demande un tableau dynamique.

Mais merci bcq.
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Ensuite tu utilises la fonction SetLength pour accroître la dimension des tableaux, mais ça, je ne l'ai jamais fait... car mon Delphi refuse des déclarations du type:


type
TEnreg = array {rien} of string;
TDblArray = array{rien} of TEnreg;
var
Datas : TDblArray;


Il y a possibilité de contourner ma contrainte, mais je reste à tout ce qui n'est pas dynamique. Je ne me prend pas inutilement la tête.


Autre astuce: tu gères des lignes dans un TStringList et dans chacun des Items, tu gères des String contenant les colonnes. Pour ne pas tricher et éviter les erreurs, prend un format CSV pour les String. jmp77 (ci-dessus) propose un code pour faire. Tu cliques sur sa tête et CSV apparait. Sauf que son code n'est pas abouti. Désolé pour lui, mais il te fera seulement la moitié du boulot.


Le TStringList est illimité en nombre de lignes, le String est illimité en nombre de caractère. Cela te fait donc un tableau dynamique à double entrée. On peut faire aussi à trois dimensions, mais là, c'est maso. Mais avec les tableaux dynamiques, tu auras un accès plus rapide.

===========
Validez les réponses si ok...

ViewVite : HTML
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello,



Voici comment faire alors :



var

MonTableau : Array of Array of String;



Ensuite quand tu veux remplir ton tableau tu fais un SetLength pour dimensionner ton tableau :



var

I,J : Integer;



begin

SetLength(StringGrid.ColCount,StringGrid.RowCount,MonTableau);



For I:=0 to StringGrid.RowCount-1 do

begin



For J:=0 to StringGrid.ColCount-1 do

MonTableau[J,I] := StringGrid.Cells[J,I];

end;
end;



Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.