olobo
Messages postés40Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention17 mars 2010
-
5 déc. 2008 à 13:27
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
5 déc. 2008 à 16:57
Hello!
Voila après de multiple recherche je vient m'adresser a vous , voila ce qu'il en est j'insère des données dans un tableaux et ensuite j'aimerais trier ce tableaux afin qu'il n'y est pas de doublon dans celui ci, j'ai essayer plein de chose mais a chaque fois on me dit quee je suis en dehors de l'index lorsque je fais une boucle pour teste si tableaux(i) <> tableaux(i+1) par exemple(entre d'autre chose que j'ai essayer) donc j'aimerais savoir si quelqu'un pourrai me donner un petit coup de main pour trier ce fichu tableaux qui commence a m'énerver lol
Merci beaucoup pour votre temps!
ps : le tableaux contient des caractères
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 5 déc. 2008 à 13:38
Salut,
Je pense que ton problème est que tu as oublier que le premier indice d'un tableau est 0.
Donc pour parcourir un tableau on fait :
For i as Integer= 0 to Montableau.length - 1
'Ici tu fais ton tri
Next
En détail : le premier élément d'un tableau est 0 don on parcours jusqu'à la taille du tableau MonTableau.length (qui ramène le nombre total d'éléments) - 1 (parce qu'on commence à 0).
olobo
Messages postés40Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention17 mars 2010 5 déc. 2008 à 13:44
Salut!
Merci pour ta reponse non je n'est pas oublie que sa commencer a 0 en effet je fais For i = 0 To tab.Length - 1
mais après pour faire le trie je pense que je doit faire quelque chose de faux donc le problème vient de la comment faire le trie dans un tableaux?
Merci!
olobo
Messages postés40Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention17 mars 2010 5 déc. 2008 à 14:15
hmmm ça me semble bien compliquer ça lol
Si je passe pas par un tableaux je peut sans doute faire un trie directement voila mon code :
For Each file As String In My.Computer.FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath)
i = i + 1
extension = Microsoft.VisualBasic.Right(Namewithoupath, Len(".") + 3)
combobox1.Items.Add(extension)
Next
Donc comment faire pour qu'il test si l'extension existe et qu'il ne l'ajoute pas?
Merci beaucoup pour l'aide!
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 5 déc. 2008 à 14:52
Ok alors,
For Each file As String In My.Computer.FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath)
i = i + 1
extension = Microsoft.VisualBasic.Right(Namewithoupath, Len(".") + 3)
if not combobox.items.IsIntern (extension) then
combobox1.Items.Add(extension)
end if
Next
C'est Intern ou IsIntern mais effectivement c'était un peu compliqué pour mettre dans une combo. Comme quoi n bout de code ça aide.
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 5 déc. 2008 à 15:17
Désolé j'ai pas Visuel studio sous les yeux. Si tu n'as pas ce que je t'ai dit,
Fait une deuxième boucle pour parcourir ta combo :
For Each file As String In My.Computer.FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath)
i = i + 1
extension = Microsoft.VisualBasic.Right(Namewithoupath, Len(".") + 3)
'Ici on parcours la combobox
For j as integer = 1 to combobox1.Items.count
' Si la valeur est différente de extension et que tu es en fin de parcours alors tu ajoutes
if combobox1.items(j) <> extension and j = combobox1.Items.count
combobox1.Items.Add(extension)
End IF
Next
olobo
Messages postés40Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention17 mars 2010 5 déc. 2008 à 15:25
Merci!
J'ai essayer et la bizarrement il ne m'ajoute plus rien dans la combo elle reste vide alors que logiquement sa devrait marcher ton raisonnement est bon je le comprend parfaitement alors pourquoi?
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 5 déc. 2008 à 15:37
re : Essaye de mettre en point d'arrêt pour voir et essayer de comprendre en analysant les valeur présentes dans la combo et la valeur de extension
Vois pour les 3 - 4 premiers items après tes boucle vont être très très longues.
Et en fait je pense que il ne peut pas la parcourir puisqu'elle est vide au démarrage et donc tu devrais ajouter :
For Each file As String In My.Computer.FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath)
i = i + 1
extension = Microsoft.VisualBasic.Right(Namewithoupath, Len(".") + 3)
If combobox1.items.count = 0 then
combobox1.items.add(extension)
End If
'Ici on parcours la combobox
For j as integer = 1 to combobox1.Items.count
' Si la valeur est différente de extension et que tu es en fin de parcours alors tu ajoutes
if combobox1.items(j) <> extension and j = combobox1.Items.count
combobox1.Items.Add(extension)
End IF
Next
olobo
Messages postés40Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention17 mars 2010 5 déc. 2008 à 15:46
oui c'est ce que j'ai fais dire que la première extension soit ajouter comme tu vient de le dire donc sa marche
mais bizarrement j'ai quelque double je ne sais pa pourquoi parceque par exemple fans mes extension j'ai plusieurs .mp3 et la dans la combo il apparait bien qu'une fois le .mp3 mais .jpg j'en ai plusieurs et il me le note plusieurs fois c'est louche lol
olobo
Messages postés40Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention17 mars 2010 5 déc. 2008 à 16:05
re!
J'ai mis un point darret et j'ai regaruder la valeur de j ici : if combobox1.items(j) <> extension et bien elle reste a 0 donc je pense que le prog test a chaque fois avec la première case donc mp3 qui est équivalent donc il ne l'ajoute pas , mais jpg sera différent de mp3 donc il l'ajoute a chaque fois
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 5 déc. 2008 à 16:18
Oubli de ma part,
Pour traiter le nom du fichier, regarde dans System.Io.Path, tu as plein de truc dedans, pour :
Récupérer le nom du fichier (avec et sans extension)
L'extension
Le chemin
...
olobo
Messages postés40Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention17 mars 2010 5 déc. 2008 à 16:23
hello NHenry!
Merci de te pencher sur le problème mais je ne connais pas Dictionary(Of String, String) etc je n'est jamais vu sa avant ... ce que ma proposer le newbie semble fonctionner mais le j ne change pas alors ke nous sommes dans uen boucle bizard...
Sinon si tu veut m'expliquer pour le dictionnary je suis toujours preneur :)
Merci
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 5 déc. 2008 à 16:57
Bonjour,
Dictionary (Of TKey, TValue)
Liste les TValue en fonction d'un TKey, et TKey doit être unique.
Donc en cas d'ajout d'un TKey déjà existant, exception.
Ensuite, tu as dans Dictionary la méthode TryGet (ou presque un nom comme ça), qui permet de récupérer un élément en fonction du TKey si existant et retourne True en réussite et False en échec