VladDracula
Messages postés10Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention12 juin 2009
-
7 juin 2009 à 13:43
VladDracula
Messages postés10Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention12 juin 2009
-
12 juin 2009 à 18:22
Bonjour,
je voudrais savoir qu'elle est la meilleur solution pour remplir une listview ?
Je m'explique : j'ai 3 colonnes (ID, nom, level ) et j'ai a ma disposition un fichier texte où chaque ligne est de la forme
"ID,Nom,Level" (j'utilise un streamreader et je slip chaque ligne sur le caractere ',' ). Je souhaiterais intégrer directement à mon projet (ie que je n'ai plus le fichier .txt mais seulement le .exe), et qu'au démarrage la listvieuw soit déjà remplie. Pour sa j'ai fait un switch sur l'id et une simple boucle for, mais mon probleme est celui de la vitesse. En effet pour le moment en cachant la listvieuw et en la remplissant, j'en ai pour environ 15 sec ( pour 25000 items :p ), je voudrais que ca soit un peu plus rapide (4-5sec)
Donc je voudrais savoir comment remplir un listview rapidement et éfficacement , ou tout autre type de base de donné (genre hashtable ou dictonnary).
Apres je voudrais pouvoir aussi lancer une recherche sur le nom de l'objet. Pour le moment je fais sa a la bourrin, je regarde tt les listeviewitem de ma listview et si son nom n'est pas le mm, je le supprime ... mais la sa prend une bonne minute :s
rours
Messages postés61Date d'inscriptiondimanche 5 novembre 2000StatutMembreDernière intervention24 février 2010 8 juin 2009 à 13:49
ah ui et j'oubliais pour la derniere question, dans la doc on peut lire ça : "
Souvent, lorsque vous utilisez une longue liste d'éléments dans un contrôle <?XML:NAMESPACE PREFIX MSHelp NS "http://msdn.microsoft.com/mshelp" /??><mshelp:link tabindex="0" keywords="T:System.Windows.Forms.ListView">ListView</mshelp:link>, vous souhaitez offrir des fonctions de recherche à l'utilisateur. Le contrôle <mshelp:link tabindex="0" keywords="T:System.Windows.Forms.ListView">ListView</mshelp:link> offre cette fonction de deux façons différentes : par correspondance de texte et par recherche d'emplacement.
La méthode <mshelp:link tabindex="0" keywords="Overload:System.Windows.Forms.ListView.FindItemWithText">FindItemWithText</mshelp:link> vous permet d'effectuer une recherche de texte sur un <mshelp:link tabindex="0" keywords="T:System.Windows.Forms.ListView">ListView</mshelp:link> dans une vue Liste ou en mode Détails, à l'aide d'une chaîne de recherche et d'un index de début et de fin facultatif. En revanche, la méthode <mshelp:link tabindex="0" keywords="Overload:System.Windows.Forms.ListView.FindNearestItem">FindNearestItem</mshelp:link> vous permet de rechercher un élément dans un <mshelp:link tabindex="0" keywords="T:System.Windows.Forms.ListView">ListView</mshelp:link> dans une vue Icônes ou dans un affichage en mosaïque, à l'aide d'un jeu de coordonnées x- et y- et un sens de la recherche."
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 8 juin 2009 à 14:52
Salut,
Ta listview a une taille qui te permet de voir un nombre limité de lignes au départ (disons 20 lignes par ex). Tu pourrais afficher ta listview après disons avoir rempli peut être 1000 lignes si ça ne prend pas trop de temps et tu continues de charger ta listview avec les autres éléments
The possible meet the impossible to become the possimpible !!
rours
Messages postés61Date d'inscriptiondimanche 5 novembre 2000StatutMembreDernière intervention24 février 2010 8 juin 2009 à 15:26
oui mais il veut juste la remplir rapidement, il ne l'affiche pas (enfin c'est pas dans le texte en tout cas).
En gros il lance son prog. Ca charge la list view (pour un traitement ultérieur sans doute) mais c est trop long. Enfin j'ai peut etre mal compris.
Vous n’avez pas trouvé la réponse que vous recherchez ?
VladDracula
Messages postés10Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention12 juin 2009 12 juin 2009 à 18:22
Merci d'avoir répondu, et désolé de ne l'avoir pas fait mais je n'avais pas internet de la semaine :s
Les ligne de ma listevieux contienne le nom d'objet ( pour un mmorpg ) et sont de la forme :
ID | Nom | Level de l'ojet
j'ai un fichier text dont chaque ligne est de la forme :
"ID","Name,"Level"
Pour le moment j'ai mon programme et le fichier text séparé, et lorsque je lance mon programme je crée un streamreader, lit chaque ligne, puis l'ajoute a ma listvieuw. Cela prend pas mal de tps ( comme je l'ai dit 25000 objets ). Alors je voulais savoir qu'elles étaient les autres moyens pour remplir ma listvieuw, plus rapidement et si possible sans avoir le fichier text a me balader.
( pour le code j'vous mes ca demain j'ai pas mon portbale avec moi ^^)