comparer deux listbox ? [Delphi] - Delphi/Pascal - Programmation
Marsh Posté le 01-09-2007 à 17:29:05
davidmarli a écrit : Bonjour à tous, |
1/ C'est pas très clair, ou alors c'est moi qui ne m'en remets pas de ce que j'ai fligué cet aprem
2/ Faudrait passer par un algorythme, mais que contiennent ces ListBox ? Montre-ns, un peu
Marsh Posté le 01-09-2007 à 18:06:09
Dans la listbox n°1 j'ai des noms de fichiers .mpg (par exemple test1.mpg test2.mpg ...)
Dans la listbox2 j'ai aussi des noms de fichiers (par exemple test 1.mpg, test8.mpg, test2.mpg ...)
Je sais que la listbox n°2 contient TOUSles fichiers de la listbox n°1 plus un fichier.
Ce que je veux c'est trouver ce fichier et le placer dans la listbox n°3 !!!
Est-ce plus clair ainsi formulé ?
Merci
Marsh Posté le 02-09-2007 à 13:46:20
Salut
ce que tu peut faire c'est faire une boucle qui parcours tout les items du 2 pour les comparer avec les items du 1 et celui qui n'est pas dans le 2 -> listebox 3
c'est un peu lourd mais ça doit marcher
je t'aurais bien fait un bout de code mais je sais pas comment on choppe les items
si tu sais dis-moi j'te filerai un coup d'main
sinon tu recupère tout le texte du 2 dans un string et tu vire un-par-un ceux qui sont dans le 1 avec des POS et des delete
edit: à moins que celui qui n'est pas dans le 1 soit toujours le dernier du 2???
Marsh Posté le 02-09-2007 à 14:00:21
Merci j'essaierai ce soir.
Pour avoir les items c'est :
listbox1.items[i] (pour avoir le ième item de laliste n°1)
Et sinon ben non le nouveau fichier ne se trouve pas forcément à la dernière position !!!! C'est bien dommage d'ailleurs !! (Enfin se serait le cas si on pouvait classer les fichiers par date croissante de création . (peut-être est-ce possible avec findfirst ...)
Marsh Posté le 02-09-2007 à 21:12:23
ça serait trop beau
ouais tu peut faire ça:
procedure TForm1.Recup; |
j'ai pas essayer ça de vrait rouler si les items communs des 2 sont bien pareils
par contre tu risque peut être de te retrouver avec des espaces en trop???
Marsh Posté le 02-09-2007 à 22:48:13
Bon finalement j'ai utilisé ta première idée : je mets mes éléments de ma listbox1 dans un STRING puis je parse mes items de la seconde avec la fonction POS sur cette chaine, et je repère l'item qui ne s'y trouve pas !
Merci bp.
Marsh Posté le 07-09-2007 à 22:19:18
Sinon y a la méthode indexof de listbox.items, c'est peut-être plus simple pour voir si une chaîne est dans la liste
Ton truc avec Pos ça va foirer dans le cas où tu cherches "test.mpg" et que la liste contient aussi "untest.mpg" par exemple...
Marsh Posté le 08-09-2007 à 06:39:22
oui exact mais en fait cela ne peut pas arriver.
En fait dans les listbox sont répertoriés des fichiers issus d'enregistrement avec PouchinTV et ils sont de la forme :
FRANCE 2 20-55-00 10-02-2007.mpg (par exemple)
Donc le fichier comportant le nom de la chiane enregistrée, suivi de la date et de l'heure de début normalement un nom de fichier ne peut pas en contenir un autre.
Mais bon qd j'aurais cinq minutes je me pencherais sur les indexof.
Merci bp.
Marsh Posté le 08-09-2007 à 11:52:33
un truc du genre devrais fonctionner
Code :
|
Marsh Posté le 05-10-2007 à 11:36:58
Faudrait surtout avoir le code de remplissage de lbx1 et lbx2, car il doit etre plus facile de remplir aussi lbx3 à la volé que de faire plein de boucle.
Apres faut voir le contexte d'utilisation des listbox aussi mais bon...
Marsh Posté le 01-09-2007 à 14:15:37
Bonjour à tous,
j'ai un pb avec un petit bout de prog :
J'ai deux listbox que je remplis et une en attente d'être remplis ! (la listbox1 contient n éléments, la listbox2 n+1)
Ce que je veux faire c'est mettre dans la troisième listbox l'item de la seconde qui n'est pas dans le première et je n'y arrive pas du tout !!!
Si quelqu'un peut m'aider je l'en remercie d'avance.