Bonjour,
J'utilise un StringGrid pour stocker des information proprité visible à false.
Mais je trouve cela lours et lent dans la reccherche, pouvez-vous me conseiller un autre composant, TStringList, ListView etc...
Cordialement
Qays
Version imprimable
Bonjour,
J'utilise un StringGrid pour stocker des information proprité visible à false.
Mais je trouve cela lours et lent dans la reccherche, pouvez-vous me conseiller un autre composant, TStringList, ListView etc...
Cordialement
Qays
Heuuu une matrice de String ?
Ou encore e maniere dynamique :Code:Var Mat : Array[1..MaxRow, 1..MaxCol] of String
Code:Var Mat : Array of Array of String
Bonjour,
J'ai déja tenté cette approche, le soucis c'est que j'ai constaté un ralentissement de mes traitements :
Est ce que cela vous semble logique?
Est ce l'utilisation de array of array qui ralenti les traitment?
Je vais voir mon algo de recherche.
Cordialement
franchement ? il n'y a aucune raison.
Simplement parce que derrierre un TStringGrid.... ya forcement un Array of Array ....
Question acces, les tableaux sont ce qu'il y a de plus rapide car on utilise l'indexage.
En fait, quand on fait Tab[i] on prend l'adresse de Tab et on se decale de i*taille d'un element.
Pour les chaines, le contenu est un Integer (adresse memoire ou est stocker la chaine) donc Tab[i] = @Tab+4*i
Et Pour les matrices : Tab[i, j] = @Tab+4*i*MaxJ+4*j
Donc une simple operation arithmetique permet d'acceder a l'adresse memoire de la chaine.
CE qui peu poser des soucis c'est l'allocation dynamique de memoire.
C'est sur que si on passe son temps a faire des SetLength .... ca va finir par couter. L'ideal etant d'allouer le plus de memoire possible d'un coup.
Exemple :
Preferer ceci :
a ceci :Code:
1
2
3 SetLength(Tab, n); For i := 0 to N -1 do ...
Bon maintenant il faudras voir le code de plus pres ....Code:
1
2 For i := 0 to N-1 do Begin SetLength(Tab, Length(Tab)+1); ... End;